Difference between revisions of "DCS func getPosition"
From DCS World Wiki - Hoggitworld.com
(Adding information on orientation vector + example.) |
|||
(One intermediate revision by one other user not shown) | |||
Line 13: | Line 13: | ||
|par4= | |par4= | ||
− | |desc= Returns a | + | |desc= Returns a Position3 table of the objects current position and orientation in 3D space. |
+ | |||
+ | |||
+ | X, Y, Z values are unit vectors, starting from the object's center, defining the object's orientation: | ||
+ | * X points forward, extending 'out the front' | ||
+ | * Y points upwards, extending 'out the top' | ||
+ | * Z points to the right. | ||
+ | |||
+ | |||
+ | Coordinates are dependent on the position of the maps origin. In the case of the Caucuses theater, the origin is located in the Crimean region of the map. | ||
Function also works with [[DCS_Class_Unit|Unit]], [[DCS_Class_Weapon|Weapon]], [[DCS_Class_Static_Object|Static Object]], [[DCS_Class_Scenery_Object|Scenery Object]], [[DCS_Class_Airbase|Airbase]] | Function also works with [[DCS_Class_Unit|Unit]], [[DCS_Class_Weapon|Weapon]], [[DCS_Class_Static_Object|Static Object]], [[DCS_Class_Scenery_Object|Scenery Object]], [[DCS_Class_Airbase|Airbase]] | ||
− | |rtnType= | + | |rtnType= Position3 |
|rtnExample= Position 3 is a table consisting of the point and orientation tables. | |rtnExample= Position 3 is a table consisting of the point and orientation tables. | ||
− | Position3 = { | + | Position3 = { |
− | + | p = Vec3, -- Object world position, same as getPoint(). | |
− | + | x = Vec3, -- forward vector | |
− | + | y = Vec3, -- up vector | |
+ | z = Vec3 -- right vector | ||
+ | } | ||
|reqType1= Class | |reqType1= Class | ||
Line 46: | Line 57: | ||
local Heading = math.atan2(unitpos.x.z, unitpos.x.x) | local Heading = math.atan2(unitpos.x.z, unitpos.x.x) | ||
local Pitch = math.asin(unitpos.x.y) | local Pitch = math.asin(unitpos.x.y) | ||
+ | |||
+ | Spawn a crate 10 meters in front of the unit. | ||
+ | |||
+ | local unit = Unit.getByName('Alice') | ||
+ | local unitpos = unit:getPosition() | ||
+ | |||
+ | local tenMetersInFront = { | ||
+ | x = unitpos.p.x + 10 * unitpos.x.x, | ||
+ | y = unitpos.p.y + 10 * unitpos.x.y, | ||
+ | z = unitpos.p.z + 10 * unitpos.x.z | ||
+ | } | ||
+ | coalition.addStaticObject(unit:getCoalition(), { | ||
+ | name = "Alice's cargo", | ||
+ | type = "uh1h_cargo", | ||
+ | x = tenMetersInFront.x, | ||
+ | y = tenMetersInFront.z -- y/z switcheroo converting from Vec3 to Vec2 | ||
+ | }) | ||
|notes= | |notes= |