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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2012, 21:26   #1
gamezeldol
 
Регистрация: 14.06.2011
Сообщений: 7
По умолчанию График по координатам

Здравствуйте... при написании программы у меня возникли пару ошибок. Я никогда не работал с графиками, поэтому не могли бы помочь?
Рисую график по точкам... Точки берутся из Stringgrid x=cells[1,i], y=cells[2,i]. При нажатии кнопки нарисовать рисуется график, НО там появляется еще одна лишняя линия которая соеденяет начальную точку и конечную точку. КАк от нее избавиться? (на рисунке эта линия выделена красным)
и 2ой вопрос как сделать так чтобы график начал рисоваться от пересечения осей координат?
Код:
Код:
//находим центр
 x0:=image1.width div 2;
 y0:=image1.height div 2;
 //рисуем оси
 with image1.Canvas do
 begin
 pen.color:=clgreen;
 pen.width:=2;
 MoveTo(x0,0);
 LineTo(x0,ClientHeight);
 MoveTo(0,y0);
 LineTo(ClientWidth,y0);
 //рисуем график
 for i:=1 to StringGrid1.RowCount-1 do
    begin
   MoveTo(trunc(x),trunc(y));
   x:=strtoint(stringgrid1.cells[1,i]);
   y:=strtoint(stringgrid1.cells[2,i]);
   lineto(trunc(x),trunc(y));
   MoveTo(trunc(x),trunc(y));
Изображения
Тип файла: jpg Untitled.jpg (20.6 Кб, 120 просмотров)
gamezeldol вне форума Ответить с цитированием
Старый 08.05.2012, 00:59   #2
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

1) Вот скажи, а зачем по 10 раз писать MoveTo?
Достаточно один раз написать, и то не в цикле!
2) Ну я думаю, что всего лишь прибавлять к каждой точке значения х0 и y0.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 08.05.2012, 01:09   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
x:=strtoint(stringgrid1.cells[1,1])+x0;
y:=strtoint(stringgrid1.cells[2,1])+y0;
MoveTo(x,y);
for i:=2 to StringGrid1.RowCount-1 do
begin
   x:=strtoint(stringgrid1.cells[1,i])+x0;
   y:=strtoint(stringgrid1.cells[2,i])+y0;
   lineto(x,y);
end;
Но, скорее всего, у вас возникнут еще вопросы, как они возникли у меня.
Ведь график может не поместиться.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 08.05.2012 в 01:16.
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск ромбов по координатам fasty Помощь студентам 0 26.12.2011 23:14
Вывод по координатам Andrey& Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 02.11.2010 06:55
Работа по координатам экрана bunukar Общие вопросы Delphi 10 02.05.2010 21:14
Вывод по координатам Alyonka_v Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 15.09.2009 20:10
Принадлежность объекта по координатам Angel_CJ Помощь студентам 9 12.09.2007 18:43