Hi,
I’ve been working with Unity for a few months, but now I’m stuck - beginners Unity books don’t include math primers ;)… I would like to know how to find a Vector3 position (p1) within a triangle in 3D space and I also need to know the distance from a point (p0) to the new point (p1). The new Vector3 needs to be created from a right angle between the triangle and p0 (perpendicular to the triangle). I’d also rather avoid RayCasting as I think that would be overkill and this operation needs to happen often. Note: There is 100% certainty that p0 is perpendicular to the triangle’s underside.
I’m guessing the solution involves using the Vector3.Distance function at the end, but first calculating angles between some of the original vectors - which I can do using this but then I’m clueless. I’ve attached a picture of what I am trying to achieve.
Description and example code snippet would be much appreciated. Natural English explanation is preferable as my Greek is terrible. Alternatively (I’ve read asking for code is bad…?) if there’s a link to a similar post, or simply a broken down list of things I need to do, where I can search more informed, then that would be great, but I have searched on several math sites, programming sites and unity without any luck - I’ve been googling for hours
made worse as I’m not sure what I’m looking for
ANY Help would be much appreciated, please.
PS - my first post, so if I’ve broken protocol somehow, please let me know. Thanks
Might want to edit your question and fix the broken link to your image. Images really help in this situation. A couple of links to get you started: [Unity's mathematical Plane Class][1] [Math3d in the Unity Wiki][2] I think you might be interested in this two functions in particular from Math3d: PlaneFrom3Points(), SignedDistancePlanePoint(). [1]: https://docs.unity3d.com/Documentation/ScriptReference/Plane.html [2]: http://wiki.unity3d.com/index.php/3d_Math_functions
– robertbuEdited link, think it works now? I'd assumed uploading images from local drive would mean answers forum would make a local copy automatically, evidently not. Checking out your links...
– richyrichI have no trouble uploading a local image. Not sure why you hand problems. Your comment came after my solution below, so I'm not sure if you did not see it or if I missed something in your problem. Note about GetDistanceToPoint() or the similar function in Math3D, all the ProjectPoinOnPlane() does to find the point on the plane is to first find the signed distance and then walk the reversed normal back to the plane back that distance to the plane.
– robertbu