# X,Y,Z Offset?

#### wingdnosring

##### New Member
Hey guys, simple enough math question here. If I have an initial x, y, z point, how do I find the x, y, z coordinates of a point c distance away?

Also, how would I implement this into the trigger editor? For a XY scenario, I could just use (point offset by distance towards angle), but the three dimension support is surprisingly poor in the galaxy editor.

If it helps, I already created a function within the editor for determining the distance between two three dimensional points.

Try this

Trigger:
• XYZ Offset
• Options: Function
• Return Type: (None)
• Parameters
• fromX = 0.0 &lt;Real&gt;
• fromY = 0.0 &lt;Real&gt;
• fromZ = 0.0 &lt;Real&gt;
• d = 0.0 &lt;Real&gt;
• h = 0.0 &lt;Real&gt;
• XYangle = 0.0 &lt;Real&gt;
• Grammar Text: XYZ Offset(fromX, fromY, fromZ, d, h, XYangle)
• Hint Text: (None)
• Custom Script Code
• Local Variables
• XY = No Point &lt;Point&gt;
• RealXYdistance = 0.0 &lt;Real&gt;
• X = 0.0 &lt;Real&gt;
• Y = 0.0 &lt;Real&gt;
• Z = 0.0 &lt;Real&gt;
• Actions
• General - If (Conditions) then do (Actions) else do (Actions)
• If
• h &lt;= d
• Then
• Variable - Set RealXYdistance = (Square root(((d * d) - (h * h))))
• Variable - Set XY = ((Point(fromX, fromY)) offset by RealXYdistance towards XYangle degrees)
• Variable - Set X = (X of XY)
• Variable - Set Y = (Y of XY)
• Variable - Set Z = (fromZ + h)
• Else

Just give it initial XYZ [fromX, fromY, fromZ] , how higher (or lower) you want the point to go [h], what distance [d], and to what angle on the XY plane [XYangle].

I have a problem with over clarifying things, but better safe than sorry
It should work but it's untested, so here's the sketch for (what I think is) the solution anyway.

EDIT: Optionally, if you want, I can make one which instead of height takes a second angle.

Look at the second post of this thread here

Ah thanks guys. I actually solved it myself through a LONG time of experimentation. However, here's what I'm trying to do. My initial intention was to detect where a unit is hit by a passing projectile and create an actor to show where the 'impact' occurred on the character model. It works perfectly, but I've hit a small snag.

Here's my function. : Your suggestion seemed simpler and easier on the computer's processor and RAM, so this is what I'm using now:
Code:
``````Point With XYZ Polar Offset
Options: Function
Return Type: Point
Parameters
Point = No Point <Point>
Offset = 0.0 <Real>
XY Angle = 0.0 <Real>
Z Angle = 0.0 <Real>
Grammar Text: (Point) offset by (Offset) at XY angle (XY Angle) and Z angle (Z Angle)
Hint Text: (None)
Custom Script Code
Local Variables
End X = 0.0 <Real>
End Y = 0.0 <Real>
End Z = 0.0 <Real>
Actions
Variable - Set End X = ((X of Point) + (Offset * ((Cos(XY Angle)) * (Cos(Z Angle)))))
Variable - Set End Y = ((Y of Point) + (Offset * ((Sin(XY Angle)) * (Cos(Z Angle)))))
Variable - Set End Z = ((Height of Point) + (Offset * (Sin(Z Angle))))
General - Return (Point(End X, End Y, End Z))``````

Here's how I calculate the Z axis angle (pitch):

Code:
``````Angle Between Points on Z Axis
Options: Function
Return Type: Real
Parameters
Point1 = (Position of (Triggering unit)) <Point>
Point2 = (Position of (Triggering unit)) <Point>
Grammar Text: Angle Between (Point1) and (Point2)
Hint Text: (None)
Custom Script Code
Local Variables
Pitch = 0.0 <Real[1]>
Actions
Variable - Set Pitch[0] = (Distance between Point1 and Point2)
Variable - Set Pitch[1] = ((Height of Point1) - (Height of Point2))
General - Return (Atan((Pitch[1] / Pitch[0])))``````

There's a problem that occurs somewhere in the Offset trigger, because every single effect is being displayed near the centre of the sphere. Basically, the trigger is returning 0 values for X and Y (or just much lower values than it should have). Why would that be?

Both my old, more complex, homemade version and this simpler one Sgqvur referred me to have the same problem.

: GAH nvm thanks guys. I was looking at the third post on that page you referred me to, not the second. The second works flawlessly...should have known better than to think Aceheart was wrong.

General chit-chat
Help Users
• No one is chatting at the moment.

• Ghan