- Home /
Projected plane area?
I'm beginner in coding and i faced this problem: I have a rotated plane in xyz, and a game object. I need the projected plane area form other game object plane of view.
How should i get the projected plane area?
Uhm what kind of camera do you use? $$anonymous$$eep in $$anonymous$$d that a rotated rectangle in a perspective camera will yield a Trapezoid. Also do you want to project the plane onto a plane that is parallel to the camera / screen plane?
I need this area for calculating force on the sail from wind point of view.
Answer by Bunny83 · Jan 14, 2018 at 12:25 AM
Ok for a sail on a sailboat you need two things:
Calculate the actual area that the sail has.
You also need the normal vector of the sail. So the vector that is perpendicular to the surface of the sail.
Now all you have to do is this:
float affectedArea = sailArea * Mathf.Abs (Vector3.Dot(windDir, sailNormal));
Note that windDir as well as sailNormal need to be normalized vectors (vectors with a length of 1.0). If your sail is a gameobject you can simply get the normal from one of the local axis vectors (forward, right, up) which are already normalized. Just pick the right one. sailArea is just a float value which should be equal to the area of your sail.
Your answer
Follow this Question
Related Questions
Aligning a transform according to two different positions and directions 1 Answer
Check if GameObject is within the volume of a cone. 4 Answers
Why this prints (0, 0, 0): Debug.Log("" + ((new Vector3(1, 0, 0)) * 0.016f)); 1 Answer
Procedural Generation - Rooms spawning at same positions. 0 Answers
Change direction of vector based on which way player is facing 1 Answer