Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2011, 18:29   #1
tarasslinko
 
Регистрация: 25.12.2009
Сообщений: 6
Лампочка решил создать тему с полезнЫми функциями для графиков

Первая функция рисует координатную плоскость

Код:
void coordpl(int w,int h,int wD,int hD,int k){
     line(wD,0,wD,h); // рисуем вертикальную линию
     line(0,hD,w,hD); // рисуем горизонтальную линию
     line(w,hD,w-5,hD-5); //пол стрелочки к горизонтальной линии
     line(w,hD,w-5,hD+5); //пол стрелочки к горизонтальной линии
     line(wD,0,wD+5,5); //пол стрелочки к вертикальной линии
     line(wD,0,wD-5,5); //пол стрелочки к вертикальной линии
     char str[3]; // переменная для хранения подписей к линиям
     for(int i=0;i<30;i++){ // цикл который рисует рисочки и цифры
           line(wD-3,hD-i*k,wD+3,hD-i*k); // рисочки на вертикальной линии от центра вверх
           line(wD-3,hD+i*k,wD+3,hD+i*k);// рисочки на вертикальной линии от центра вниз
           line(wD+i*k,hD-3,wD+i*k,hD+3); // рисочки на горизонтальной линии от центра вправо
           line(wD-i*k,hD-3,wD-i*k,hD+3);// рисочки на горизонтальной линии от центра влево
           sprintf(str,"%d",i); // перевод целЫх чисел в строку для отображения на графике (положительнЫе)
           outtextxy(wD+1,hD-i*k+1,str); 
           outtextxy(wD+i*k+1,hD+1,str);
           sprintf(str,"%d",-i); // перевод целЫх чисел в строку для отображения на графике (отрицательнЫе)
           outtextxy(wD+1,hD+i*k+1,str);
           outtextxy(wD-i*k+1,hD+1,str);
           }
     }
в нее передаются:
w - ширина экрана
h - высота экрана
wD - половина ширины (можно посчитать в функции, но так как я использую в програме, то решыл передать)
hD - аналогично половина высоты
k - масштаб

может кому полезно будет, со временем буду добавлять универсальные функции

Последний раз редактировалось tarasslinko; 21.04.2011 в 19:15. Причина: хз
tarasslinko вне форума Ответить с цитированием
Старый 21.04.2011, 19:23   #2
tarasslinko
 
Регистрация: 25.12.2009
Сообщений: 6
По умолчанию

Код:
void coordpl(int w,int h,int wD,int hD,int k){
     line(wD,0,wD,h);
     line(0,hD,w,hD);
     line(w,hD,w-5,hD-5);
     line(w,hD,w-5,hD+5);
     line(wD,0,wD+5,5);
     line(wD,0,wD-5,5);
     char str[3];
     for(double i=0;i<30;i+=0.5){
           line(wD-3,hD-(int)(i*k),wD+3,hD-(int)(i*k));
           line(wD-3,hD+(int)(i*k),wD+3,hD+(int)(i*k));
           line(wD+(int)(i*k),hD-3,wD+(int)(i*k),hD+3);
           line(wD-(int)(i*k),hD-3,wD-(int)(i*k),hD+3);
           sprintf(str,"%.1f",i);
           outtextxy(wD+1,hD-(int)(i*k)+1,str);
           outtextxy(wD+(int)(i*k)+1,hD+1,str);
           sprintf(str,"%.1f",-i);
           outtextxy(wD+1,hD+(int)(i*k)+1,str);
           outtextxy(wD-(int)(i*k)+1,hD+1,str);
           }
     }
та же функция, только с шагом 0.5
tarasslinko вне форума Ответить с цитированием
Старый 21.04.2011, 20:19   #3
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Да уж, стиль программирования у вас не ахти.
Пишите код так, чтобы его мог хоть кто - всё должно быть ясно.
И ещё: подобных примеров много и в интернете, и на этом форуме.
Но сама идея, в целом, неплоха.
_-Re@l-_ вне форума Ответить с цитированием
Старый 21.04.2011, 20:24   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

как я понимаю это графический режим для Borland C++?(в общем для ДОС)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 28.04.2011, 19:10   #5
tarasslinko
 
Регистрация: 25.12.2009
Сообщений: 6
По умолчанию

Извините за кривой русский, я просто плохо его знаю.
блин "решыл" ото я мудак... "Ы" вроде после "ш" не пишется...
А что на счет стиля програмирования, а то не совсем понял?
tarasslinko вне форума Ответить с цитированием
Старый 28.04.2011, 20:51   #6
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от tarasslinko Посмотреть сообщение
И
А что на счет стиля програмирования, а то не совсем понял?
Давайте осмысленные имена всем сущностям (переменным, функциям, классам, структурам)
Избавьтесь от "магических числе", используйте константы.
Не надо писать комментарии для каждой строчки.
Разделяйте ваш код на логические группы
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 28.04.2011, 21:36   #7
tarasslinko
 
Регистрация: 25.12.2009
Сообщений: 6
По умолчанию

Ага, теперь понял.
Благодарю за критику.
tarasslinko вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где создать тему: Webmoney-кредиты для членом Клуба? Oborot_Service О форуме и сайтах клуба 2 28.01.2011 11:48
Задать массив для графиков 1134 Microsoft Office Excel 4 28.07.2010 12:01
Компонент для построения трёхмерных графиков rocky7 Компоненты Delphi 2 29.09.2009 14:15
программа для построения графиков Kris007 Microsoft Office Word 1 04.11.2008 23:37
Компонент для построения графиков из таблицы БД Glizer Компоненты Delphi 3 18.04.2008 13:29