$x1 = 10
$y1 = 10
$x2 = 20
$y2 = 30
координаты xy
DEFINE ( $Line_x, $x2 )
DEFINE ( $Line_y, $y2 )
DEFINE ( $Line_xy, $y2 )
DEFINE ( $Line, 1 )
DEFINE ( $Line_1, 1)
DEFINE ( $Line_2, 1)
Массивы для сортировки
if($x1<$x2 & $y1<$y2 & $y2>=$x2 & $x1>=$y1)
$y2>=$x2 линия с верху в низ или горизонтальная
$x2=$x2+$x1
$y2=$y2+$y1
Начало линии
$var1=$x2-$x1 // количество рх длина
$var2=$y2-$y1 // количество рх высота
$i_1=INT($var2/$var1)
$i_3=$var2-($i_1*$var1) // количество добавлений по высоте при условии что $y2>$x2
$x2 = $x1 //х2 и у2 приминаются в функции когда необходимо увеличить на несколько рх по высоте на 1 уровне
$y2 = $y1
while($i_3>=0) //проверка условия нужно добавить высоту $ i_3
if($i_3=1) //прибавление по высоте в по 2 циклам, 1 цикл интервал 2,3,4,5,6,9,10
$i_6=1+INT($var1/2) //цикл 2 интервал 7,8 прибавлений по высоте
$i_7=$i_6 //$i_7 присваивается интервал между прибавлениям высоты
else //количество прибавлений не должно больше 20 к примеру 20/9 интервал 3 шага
$i_6=INT($var1/$i_3)
if($i_6=1)
$i_7=2
else
if($i_3=7 | $i_3=8) //количество прибавлений 20/8 или 20/8 интервал 2 шага, линия изменит угол
$i_6=3 //нужно определить интервал больше длины, интервал для 7,8 добавлений по высоте будет равен 3
$i_7=3 //в 1 цикле если 8 добавлений, 3*8=24, 24-20=4
else //в цикле 2 нужно определить интервал для 4 прибавления, интервал 20/4=5
if($i_6=10 & $i_3=2)//для числи 7 и 8 нужны 2 итерации
$i_7=6
else
$i_7=$i_6
end_if
end_if
end_if
end_if
//---
for($i=0, $i<$var1) //1 цикл интервал 1,2,3,4,5,6,,,9,10 умноженное на количество прибавлений,не превышать цифру 20
// шаг 10,9,6,5,4,3,2,1
if($i_4=2) // если интервал 2 нужно увеличить на 1 для асимметрии линии, к примеру 2 добавления высоты через интервал 10
$y2=$y2+1 // асимметрия интервал равный 7 при 2 добавлений высоты, я установил 1 что не соответствует асимметрии
end_if
if($i_4=1)
$y2=$y1
$x2=$x1
$i_4=2
end_if
$i_2=0
while($i_2<$i_1 & $i_4=0) //1 цикл
ARRPUSH ($Line_x, $x2) //увеличить размер массива
ARRPUSH ($Line_y, $y2)
$y2=$y2+1
$i_2=$i_2+1
end_cyc
if($i_8<$i_3 & $i=$i_6)
if($i=$i_6 & $i_6!=0)
if($i_3>0)
ARRPUSH ($Line_x, $x2)
ARRPUSH ($Line_y, $y2)
$y2=$y2+1
$i_3=$i_3-1
end_if
$i_6=$i_6+$i_7
end_if
$i_8=$i_8+1
end_if
$x2=$x2+1
$i_8=0
end_cyc
$i_4=1
if($i_3=0)
$i_3=$i_$i_3-1
end_if
end_cyc