Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by Sunatic · Apr 18, 2021 at 08:13 PM · vector3planenormalspointscross

I want to rotate a plane towards a normal of 3 Vectors/Points

Hi! Im am trying to create a plane that is defined by 3 points, one of them you can reposition with your mouse. The other is calculated so that the 3 Points form a plane that is tangent to a cone.

I don't know how to create a plane that has those three points/Vectors (like this) alt text

What I tried to do was get the normal of these three points (point v, point p, point t) and set the rotation of the plane to that normal pointing towards the top of the plane: alt text

The result I get from this, is the plane switching between the intended rotation and reset rotation every frame. here is the whole code:

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class TangentPlane : MonoBehaviour
 {
     //Point Vectors
     public Vector3 tPoint;
     public Vector3 vPoint;
     public Vector3 pPoint;
 
     private Vector3 sideA;
     private Vector3 SideB;
 
     public Vector3 planeNormal;
 
     // Horizontal Plane
     private GameObject TangentEquation;
     private bool horizontalPlane;
     private bool perfilTangent;
 
     void Update()
     {
         //Horizontal Plane
         TangentEquation = GameObject.FindGameObjectWithTag("Tangent");
         horizontalPlane = TangentEquation.GetComponent<TangentEquation>().horizontalPlane;
         perfilTangent = TangentEquation.GetComponent<TangentEquation>().perfilTangent;
 
         //Points
         tPoint = GameObject.FindGameObjectWithTag("Tangent").transform.position;
         vPoint = GameObject.FindGameObjectWithTag("VPoint").transform.position;
         pPoint = GameObject.FindGameObjectWithTag("P").transform.position;
         
         // Establish the difference betwen points
         sideA = tPoint - vPoint;
         SideB = pPoint - vPoint;
 
         //calculate the normal
         planeNormal = (Vector3.Cross(sideA, SideB)).normalized;
 
         transform.rotation = Quaternion.FromToRotation(transform.up, planeNormal);
         
         if(Input.GetMouseButtonUp(0))
         {
             if (horizontalPlane == true)
             { }
             else if (perfilTangent == true)
             { }
             else
             {
             }
         }
     }
 }


Blockquote

1.png (262.3 kB)
2.png (97.2 kB)
Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0
Best Answer

Answer by Sunatic · Apr 20, 2021 at 09:29 AM

If you edit this code transform.rotation = Quaternion.FromToRotation(transform.up, planeNormal);

For this transform.rotation = Quaternion.FromToRotation(transform.position, planeNormal);

You get the desired result :)

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

188 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Getting intersection points between a plane and an object 0 Answers

Unity simple algebra fail? 1 Answer

Vectors side determing by a line. Please help me out !!!! 0 Answers

Rotate Vector to hit.normal only by set degrees 0 Answers

Don't trust "Vector3.Distance"? 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges