![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте... при написании программы у меня возникли пару ошибок. Я никогда не работал с графиками, поэтому не могли бы помочь?
Рисую график по точкам... Точки берутся из 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)); |
|
#2
|
||||
|
||||
|
1. Оцените ваш код:
Код:
...
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));2. Сдвинуть первые координаты. |
|
#3
|
|||
|
|||
|
Цитата:
по 2ому понял а вот по первому вопросу не могу разобраться определяем точку, плтом проводим линию до 2ой точки, затем от 2ой к третей, Но зачем она возвращается от 3ей к первой? |
|
#4
|
||||
|
||||
|
Цитата:
Смотри здесь и здесь. Последний раз редактировалось angvelem, 07.05.2012 в 22:34. |
|
#5
|
|||
|
|||
|
Уже если честно перебрал все варианты... И Polyline попробывал... все равно рисуется одна лишняя линия.( уже не знаю че делать
![]() |
|
#6
|
||||
|
||||
|
Цитата:
|