"апофис" никуда не денешь. он останется в любой процедуре. убирать только искуственно, т.е. разбивать линию на две, и рисовать их от краев к общей точке
Вид для печати
"апофис" никуда не денешь. он останется в любой процедуре. убирать только искуственно, т.е. разбивать линию на две, и рисовать их от краев к общей точке
Согласен
Помнится программка из Spectrum Expert.
Если в строке 20 будет LET E=DX, то будут эти самые хвостики.Код:(edit)
10 LЕТ DX=255:LЕТ DY=175:LЕТ Y=0
20 LЕТ Е=DX/2
30 FОR X=0 ТО DX
40 РLОТ X,Y
50 LЕТ Е=Е-DY
60 IF Е<0 ТНЕN LET Е=Е+DX:LЕТ Y=Y+1
70 NЕXТ X
Т.е. накопитель нужно приравнивать к DX/2.
Когда переводил её в асм то тоже пропустил деление, типа и так сойдет. А вот фиг...
Ну да.
Та что 50 строка должна быть после 60 (ну например 65)
И выглядеть как:
65 IF Е<0 ТНЕN LET Е=Е+DX:LЕТ Y=Y+1
Да когда это было!
(в год выхода того эксперта или чуть попозже)
С тех пор уж и дисков не осталось...
Позже я юзал линии из адвенчура или самописаные (но на основе того-же алгоритма "Б-Х") но без оптимизаций.
Хвастать нечем.
А поскольку вы тут ловите самую-присамую быструю - в том-же номере эксперта есть примеры на асме (правда только для одного квадранта)
так что желающие смогут сами дописать и потестить...
кстати, "Б-Х" можно поюзать и не для рисования линий, а например для задания вектора движения спрайтов :)