Вопрос изначально возник вне пределов jass, но это особо не важно.
Есть точка, движущаяся с фиксированной скоростью speed, и каждую итерацию поворачивающаяся на угол rotationSpeed. Вопрос - как, имея эти данные, получить радиус окружности, являющейся траекторией движения точки?
примерный код, описывающий движение точки, как это выглядело бы в jass-е
// udg_Facing - текущий угол поворота;
// udg_Location - перемещаемая точка;
// MoveIteration() вызывается из таймера, т.е. циклична.
function MoveIteration takes nothing returns nothing
	local real currentX = GetLocationX(udg_Location)
	local real currentY = GetLocationY(udg_Location)
	local real speed = 3
	local real rotationSpeed = 6
		set udg_Facing = udg_Facing + rotationSpeed
		call MoveLocation (udg_Location, currentX, currentY, speed, udg_Facing)
endfunction
function MoveLocation takes location loc, real xPos, real yPos, real speed, real angle returns nothing
		call SetLocationX(loc, xPos + speed * Cos (angle * bj_DEGTORAD))
		call SetLocationY(loc, yPos + speed * Sin (angle * bj_DEGTORAD))
endfunction
Принятый ответ
проверил, все работает, всем спасибо)
в коде будет примерно такой вид:
в коде будет примерно такой вид:
function getTrajectoryRadius takes real speed, real rotationSpeed returns real
	local real  N = 360 / rotationSpeed		// количество сторон вписанного многоугольника
		return speed / (2 * (Sin (PI / N)))
endfunction
    
        
            
                `
            
            
                
        
    
    ОЖИДАНИЕ РЕКЛАМЫ...
            
                    
                        Чтобы оставить комментарий, пожалуйста, войдите на сайт.
                    
                
             
                        
                        
                    
 WC3
                                WC3
                            



Ред. HolyMoon
И траектория ее движения образует окружность, радиус которой и нужно получить.
Ред. MpW
Ред. biridius
точка у нас траекторией своего движения описывает что-то вроде правильного многоугольника. внешний угол
R = a/(2 Sin (360/2N)), где a - ребро (скорость за одну итерацию) и n - ранее найденное число ребер
Ред. HolyMoon
Ред. MpW
Ред. biridius
его и считаем за приближенный радиус "окружности" которую у нас описывает движущаяся точка
Ред. HolyMoon
в коде будет примерно такой вид:
Ред. MpW
у меня почему-то компас выдал обычный угол 6-ного многоугольника = 120°
а по формуле должен получится 60°
Ищу то не А-центральный, а обычный. Все понял, это называется внутренний угол. попутал