War3 3D maths - "towards"

swe_suffer

New Member
Reaction score
20
[SOLVED]War3 3D maths - "towards"

I have an issue; I dont know how to get a 3D point towards another, let me explain a litle bit. Note that the example isn't War3 accommodated (is this the right word? Im from Sweden :p).

Lets say we have a "vector" variable called 3D_point1, and another called 3D_point2. What I want to do is to set 3D_point3 to a location between 3D_point1 and 3D_point2, using a real as the amount of "dots" (or whatever it is) away from 3D_point1, similar to the function "PolarProjectionBJ", but in 3D.

Hope you understand what I mean :p. I have attached a picture in the bottom of the post.

Now i wonder, how do I write the math function?

Anyone in the mood to help (or write me the function :rolleyes:)?

Edit: Ops, this maybe should be in the JASS forum :S

[PICTURE REMOVED]
 

Trollvottel

never aging title
Reaction score
262
nono you can do this with point with polar offset

set point1 = X
set point2= Y
set angle = Angle Between X and Y
set point3 = X offset by 100 towards angle
 

Frozenwind

System maker
Reaction score
99
Think a bit, what coördinates they got the same?

x --> different
y --> different
z --> the same

It are the opposite corners of the 2D square if you watch from the upperside.
if you call the square ABCD u wanna know C out of point A.

You could use the GUI function:
"position with offset" (not polar offset)
with x being the width and y being the other side.

Example:
Code:
PointA offset by (500,500)
PointA offset by (width,lenght)

frozenwind.

EDIT:
oh, if you want a point between them, you just decrease the x and y value by a value that is an equitation to eachother.
If its a square it will be 1:1
if your size is 333:1000 it will be 1:3
 

swe_suffer

New Member
Reaction score
20
yeah, i know that, but what if the 3D_point2 isnt at the same Z as 3D_point1. Thats why i wanted something else, the castle thing was only an example of what i wanted, not exactly what i wanted :eek: but thx anyway.

Anyone else?

Added:
You could use the GUI function:
"position with offset" (not polar offset)
with x being the width and y being the other side.

ops wrong function:p
 

AceHart

Your Friendly Neighborhood Admin
Reaction score
1,495
Given two points (x1, y1, z1) and (x2, y2, z2):

x = (1 - t) * x1 + t * x2
y = (1 - t) * y1 + t * y2
z = (1 - t) * z1 + t * z2

The point (x, y, z) will move from point 1 to point 2 as t varies from 0 to 1.


Though, what are you trying to do here?
 
Reaction score
456
First of all, you could get the distance between the XYZ points:
JASS:
function DistanceBetweenPointsXYZ takes real x1, real y1, real z1, real x2, real y2, real z2 returns real
    return SquareRoot((x1 - x2)*(x1 - x2)+(y1 - y2)*(y1 - y2)+(z1 - z2)*(z1 - z2))
endfunction


Then.. we need the height between z1 and z2:

JASS:
    local real heightDifference = RMinBJ(z1, z2) + ((RMaxBJ(z1, z2) - RMinBJ(z1, z2)) / 2)


What are you going to do with the point between the 3D locations?
 

swe_suffer

New Member
Reaction score
20
Thx Überplayer and AceHart, that was exactly what i wanted. Im creating an hunting-game and i needed this so you can look up and down, and still be able to shoot.

Not, exactly but i can use it to make what i want :D
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      • Ghan
        Administrator - Servers are fun

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top