Advertisement Jump to content
Sign in to follow this  
gretty

Determine the 3d position of this vector

This topic is 1765 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello

 

I have a rather simple mathematic problem to solve. However I am not that mathematically inclined so I'd appreciate if someone could provide advice on how I solve this mathematic problem:

 

For the following triangle I wish to find the location (X,Y & Z) of the point/vector C. How can I find this position?

 

295eb89.png

 

Using simple Pythagoras I can find the length of side Z. But how can I find the position of C? I am attempting to offset/parallel a straight line segment (side X) so I need to calculate the position of C.

Share this post


Link to post
Share on other sites
Advertisement

First of don't use x, y and z for anything but coordinates.. that's just confusing. Call the sides a, b and c or something else.

 

The problem is unsolvable with only two initial points, as this will produce a wheel of possible positions of C around A, remember this is 3D, so there exists infinite directions orthogonal to the vector (AB).

 

If you have an up vector and know that A, B and C are all in the "ground" plane orthogonal to the up vector you can find C:

 

// by taking the cross product between two vectors you get a direction vector that is orthogonal to both (A - B) and up

v = Cross((A - B), up)

// by normalizing the vector v and multiplying with the length of y you scale the direction to the right length

directin = Normalize(v) * y

// you can now easily find C

C = A + direction

 

But this is only if A, B and C is in the ground plane.

Share this post


Link to post
Share on other sites


The problem is unsolvable with only two initial points, as this will produce a wheel of possible positions of C around A, remember this is 3D, so there exists infinite directions orthogonal to the vector (AB).

 

Hummm I think he must find the 'formula' or the equation representing the C position... it may be defined in function of A, B and its angles/values... right?? I dont know how to get its formula... but I think gretty is trying to achieve it ( the formula, not the real value of C )...

 

Its righ Gretty?

Share this post


Link to post
Share on other sites

 


The problem is unsolvable with only two initial points, as this will produce a wheel of possible positions of C around A, remember this is 3D, so there exists infinite directions orthogonal to the vector (AB).

 

Hummm I think he must find the 'formula' or the equation representing the C position... it may be defined in function of A, B and its angles/values... right?? I dont know how to get its formula... but I think gretty is trying to achieve it ( the formula, not the real value of C )...

 

Its righ Gretty?

 

 

The formula for finding C is

 

C = A + (Normalize(Cross((A - B), ??)) * y)

 

Where ?? is any vector not zero or parallel to (A - B)

Share this post


Link to post
Share on other sites

C = A + Normalize( Cross( B-A, Cross(A,B) ) )  * y;

 

Cross(A,B) is a non-unit "up" vector, normal to AB.

 

B-A is a non-unit vector from A to B.

 

Cross(B-A, Cross(A,B)) is normal to both AB and "up," i.e., points from A to C, normalized to a unit vector for applying the length of the side (y).

Edited by Buckeye

Share this post


Link to post
Share on other sites

C = A + Normalize( Cross( B-A, Cross(A,B) ) )  * y;

 

Cross(A,B) is a non-unit "up" vector, normal to AB.

 

B-A is a non-unit vector from A to B.

 

Cross(B-A, Cross(A,B)) is normal to both AB and "up," i.e., points from A to C, normalized to a unit vector for applying the length of the side (y).

Yes, but that's still assuming that C is also in the plane with the normal "up" gretty didn't specify that.

Share this post


Link to post
Share on other sites

so is this topic answered? because when i see crossproduct little kittens begin to cry in heaven.

Anyway relating to that question. if its 90 degs it seems that C can be on either left or right side according to B position in relation to A. if you have distance between A and C why you dont  just add this value to specified vector component?

Share this post


Link to post
Share on other sites


if its 90 degs it seems that C can be on either left or right side according to B position in relation to A.

In 2D yes, but this is 3D. This means that any point on a circle with the radius y around A is a valid point C.

 

Also: Vikings cheer in Valhal whenever people mention the cross product! You might as well learn to use it, it is quite useful in vector math :)

 

Read up: http://en.wikipedia.org/wiki/Cross_product

Share this post


Link to post
Share on other sites

realize that infinite amount of vectors C fits the definition you have described in 3d. More precisely, all vectors that begin from point A by length y orthogonal to (A-B). This yeilds vectors that create a circle which you can imagine by rotation of the triangle around (A-B) edge. 

 

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!