![]() |
|
#1
|
|||
|
|||
![]() задача - от каждой вершины многоугольника строится 2 точки
пробегая по сторонам мн. в цикле 2 раза добавляю значения в лист lz.add(mn); pt.long:=x1+dx; pt.lat:=y1+dy; new(mn); mn.xy_zab:=pt; lz.Add(mn); pt.long:=x2+dx; pt.lat:=y2+dy; mn.xy_zab:=pt; lz.Add(mn); где pt : PDoublePoint; дело в том, что когда я вывожу этот лист на экран for t:=0 to lz.Count-1 do begin mn:=lz[t]; pt:=mn.xy_zab; x1:=round(pt.long); y1:=round(pt.lat); image1.Canvas.Pen.Color:=clRed; image1.Canvas.LineTo(x1,y1); mn:=lz[(t+1) mod lz.count]; pt:=mn.xy_zab; x2:=round(pt.long); y2:=round(pt.lat); image1.Canvas.Pen.Color:=clRed; image1.Canvas.LineTo(x2,y2); end; первая точка игнорируется, прямая строится сразу ко второй точке ![]() что за фигня понять не могу (( в чём может быть проблемма? спс |
#2
|
||||
|
||||
![]() Не особо понимаю что сдесь написано.
Но возможно проблема в 'mod' ? mod - Узнать остаток от деления div - Поделить [ Ты не сможешь никому помочь до тех пор, пока не поможешь себе ] Delphi 7 user ![]()
ICQ: 570224849 / JID: x-rem@jabber.ru|no / Skype: ukc-rem / VK: ukc_rem.vk.com (ID: 27703738) |
#3
|
|||
|
|||
![]() нет, mod это для того, что бы соединить последнюю точку с первой, не тут ошика........ мозгуем дальше.....
|
#4
|
||||
|
||||
![]() Если ты не распишешь подробно, то респект тому, кто в этом разберется
![]() |
#5
|
||||
|
||||
![]() Я немного не понял что за типы данных используются для хранения точек, но из кода видно что ты не помещаешь (MoveTo) курсор в начальную позицию от которой собираешься рисовать.
|
#6
|
|||
|
|||
![]() Извените за беспокойство - я лох, вопрос снят))
Легче было написать это буэ заново, чем искать в нем ошибку. Сейчас всё работает, загвоздка видимо была в том, что запутался в глобальных и локальных переменных о_О |