나는 비행 화살표의 시뮬레이션을 만들고 있지만 매우 자연스럽지 않습니다. 여기 화살표의 궤도
는 스크린 샷입니다 :화살표 동영상 클립의 앵커는 당신이 볼 수있는 것처럼 화살표의 전면에있다,하지만 난 중간에 교체하는 경우, 그것은 여전히 보이지 않는다 완벽한, 누군가는 이것 같이 어떤 경험이 있는가?
//...
//'math' isn't the default 'Math' class, it calculates some physics stuff.
private function updateArrow()
{
var y0:Number = 50;
var v:Number = 100;
var angle:Number = math.getRadians(45);
if(!arrowstartposition)
{
arrowstartposition = activearrow.x;
arrowdistance = math.calcDistance(y0,v,angle);
}
var currentdistance:Number = Math.abs(activearrow.x - arrowstart);
if(currentdistance <= arrowdistance)
{
var currentvelocity:Number = math.calcVelocity(currentdistance, v, angle);
var addvalue:int = 1; //Math.round(currentvelocity/4);
activearrow.x += addvalue;
currentdistance += addvalue;
var arrowheight:Number = math.calcHeight(currentdistance,y0,v,angle);
var vx:Number = v * Math.cos(angle);
var vy:Number = - (v * Math.sin(angle) - 9.81 * (currentdistance/arrowdistance) * math.calcTimeOfFlight(y0, v, angle));
var currentangle:Number = Math.atan2(vy,vx);
activearrow.y = y0 - arrowheight;
activearrow.rotation = math.getDegrees(currentangle);
}
else
{
arrowstart = undefined;
arrowdistance = undefined;
activearrow = null;
}
}
하나의 문제는 궤도가 너무 포물선 적이라는 것입니다. 올바른 궤도는 화살표의 각 부분에 대한 벡터를 사용하여 더 잘 모델링됩니다. 머리와 단단한 나무는 중력과 약간의 바람 저항을 경험할 것이고, 샤프트의 영향은 거의 무시할 수 있으며, 플레칭은 약간의 양력을 경험할 것입니다. 따라서 9.81을 기반으로 한 간단한 포물선은 정확하게 모델링하지 못합니다. 또한, 당신은 속도의 연속 함수 인 끌기가 있습니다. – drharris
@drharris 그러나 가장 완벽한 물리적 포물선이라 할지라도 커브의 모양이 가장 자연스럽게 보일 것입니다. – corsiKa
사실 물론, 그는 시뮬레이션을하고 있다고 주장했다. 시뮬레이션은 일반적으로 정확도를 위에 올려 놓습니다. – drharris