~~NOTOC~~ <=[[4rpl:start| Index]] \\ <=[[4rpl:start#math_utility| Math Utility]] ====== BallisticArcLateral ====== BallisticArcLateral(<-from <-lateralSpeed <-target <-maxHeight) ->travelTime ->gravity ->fireVelocity ===== Description ===== Solve the firing arc with a fixed lateral speed. Vertical speed and gravity varies. This enables a visually pleasing arc. Not every combination of inputs has a computable output. In the case the ballistic arc does not have a solution, zeros are returned for all values. - from: Vector point projectile will fire from\\ - lateralSpeed: scalar speed of projectile along XZ plane\\ - target: Vector point projectile is trying to hit\\ - maxHeight: the world height for the projectile to peak at. When testing with a ground based unit, this needed to be higher than the unit position. Returns:\\ - fireVelocity: Vector firing velocity\\ - gravity: gravity necessary to projectile to hit precisely max_height\\ - travelTime: The time it takes the projective to reach to target. This API synergizes with the [[4rpl:commands:ballisticarcpos|BallisticArcPos]] API which is a [[4rpl:commands:movetowards|MoveTowards]] type of API but for arcs rather than a straight line which can use the returned variables to enact a smooth and visually appealing parabolic motion for a custom unit. ===== Examples ===== BallisticArcLateral(V3(10 1 10) 0.5 V3(50 5 40) 30) ->travelTime ->gravity ->fireVel <=[[4rpl:start| Index]]