global real OffsetX
global real OffsetY
function OffsetXY uses real x, real y, real a, real d return nothing
set OffsetX = (x + d * Cos(a * bj_DEGTORAD))
set OffsetY = (y + d * Sin (a * bj_DEGTORAD))
endfunction
function OffsetXYAngle uses real x, real y, real a, real d return nothing
if(a == 0) then
set OffsetX = x + d;
elseif (a == 90) then
set OffsetY = y + d;
elseif (a == 180) then
set OffsetX = x - d;
elseif (a == 270)then
set OffsetY = y - d;
endif
endfunction
Правда ли что OffsetXYAngle будет быстрее чем OffsetXY (смещение нужно только на углы 0,90,180,270)?
`
LOADING AD...
To leave a comment please sign in to the site.
Edited by CopyPaster
set OffsetArray[1 ] = 1
set OffsetArray[2 ] = 0
set OffsetArray[91 ] = 0
set OffsetArray[92 ] = 1
set OffsetArray[181] = -1
set OffsetArray[182] = 0
set OffsetArray[271] = 0
set OffsetArray[272] = -1
endfunction
set OffsetX = x + OffsetArray[a+1]*d
set OffsetY = y + OffsetArray[a+2]*d
endfunction
Edited by Extremator
Если угол будет равен 181.375, то ты получишь точный результат, а не приблизительный от 181 или 182
Edited by nazarpunk
Edited by ScorpioT1000
Синус и косинус больше нагрузки дадут чисто из-за вызова