|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Pasha Krutchinin 2:5080/169.17 12 Mar 2003 09:58:06 To : Maxim Petrankov Subject : <без заголовка> -------------------------------------------------------------------------------- [ю]-=[06 марта 2003]=-[ю]-=[21:06]=-[ю] [ю]-=[Maxim Petrankov Д=> Stanislav Shwartsman]=-[ю]-=[]=-[ю] MP>>> Есть точки с кооpдинатами x1,y1 и x2,y2. Hадо постpоить между MP>>> ними линию имея возможность pисовать только точку. SS>> Алгоритм Брезенхема. MP> [skip] MP> FOR x = x1 TO x2 MP> y = (((x - x1) * (y2 - y1)) / (x2 - x1)) + y1 (x1,y1)=5,5 (x2,y2)=5,10 Ы? MP> PSET (x, y) MP> NEXT x Кстати, на каждом шаге у тебя идут "лишние" расчеты. То есть, кое что можно считать константой. y=x*(y2-y1)/(x2-x1)-(x1*(y2-y1)/(x2-x1)+y1) MP> А на случай если конечные кооpдинаты больше начальных в начале можно MP> вставить вот это: MP> IF x1 > x2 THEN SWAP x1,x2 MP> IF y1 > y2 THEN SWAP y1,y2 (x1,y1)=10,10 (x2,y2)=5,12 Ы? Если представить себе прямоугольник образованый (x1,y1,x2,y2) то ты нарисуешь другую его диагональ (не ту, что задана). И последнее - проверь свой алгоритм на линиях с углом наклона до 1/4Pi и после 1/4Pi. Оказывается, что в некоторых случаях твоя линия получится как бы перфорированной (не сплошной). Когда все исправишь - получится что-то близкое к алгоритму брезенхема. Pasha Krutchinin. ... Team [_Igel's Home_] --- Я - агроном, сын агронома, принц гондураса. * Origin: Igel, simply Igel... (2:5080/169.17) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/165183e6eb0dd.html, оценка из 5, голосов 10
|