DCS func getPosition: Difference between revisions
From DCS World Wiki - Hoggitworld.com
No edit summary |
Adding information on orientation vector + example. |
||
| Line 13: | Line 13: | ||
|par4= | |par4= | ||
|desc= Returns a Position3 table of the objects current position and orientation in 3D space. X, Y, Z values are unit vectors defining the | |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]] | ||
| Line 20: | Line 29: | ||
|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= | ||
