![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте!
Никак не могу решить простую казалось бы задачку. Есть бмп изображение, я задаю две произвольные точки на этом изображении и рисую прямую линию между ними. Вопрос в том, как получить координаты пикселей, которые пересекает эта прямая. Мне это нужно для представления гистограммы интенсивностей пикселов на этой линии. Никак в голову нужный алгоритм не приходит, может кто-нибудь посоветует как быть? |
#2
|
||||
|
||||
![]() исходя из:
![]() Пишу программы за еду. __________________ |
#3
|
||||
|
||||
![]() NumLock, ты видимо не правильно понял вопрос. Вот как строить прямую, даже реализация есть, а я в довикипедоные времена сам реализацию писал...
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение: | ||
kurganov4 (10.12.2013)
|
#4
|
||||
|
||||
![]() Цитата:
![]() |
Эти 2 пользователя(ей) сказали Спасибо poli-smen за это полезное сообщение: | ||
Freeman (06.12.2013),
M.A.D.M.A.N. (05.12.2013)
|
#5
|
||||
|
||||
![]() Цитата:
Пишу программы за еду. __________________ |
#6
|
||||
|
||||
![]() А велосипед то изобретен)))
LineDDA function Цитата:
Пример: Код:
procedure LineDDAProc(X, Y: Integer; Data: Integer); stdcall; begin Form1.Canvas.Pixels[X, Y]:=clBlack; end; procedure TForm1.Button1Click(Sender: TObject); begin LineDDA(10, 60, 109, 109, @LineDDAProc, 0); end; Получает все точки для линии (10, 60)-(109, 109). Координаты возвращает через функцию обратного вызова LineDDAProc в X и Y. Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
kurganov4 (10.12.2013)
|
#7
|
||||
|
||||
![]() Цитата:
ЗЫЖ Вообще колдунство, я прям под впечатлением. Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. Последний раз редактировалось Aristarh Dark, 06.12.2013 в 17:15. |
#8
|
||||
|
||||
![]() Цитата:
![]() Вот примеры из книги: ![]() ![]() |
#9
|
|||
|
|||
![]() Всем спасибо!
Подтянул свои знания. Брезенхема прошарил, думал уже по нему делать. Но LineDDA это действительно круто)) |