Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 /
This post has been wikified, any user with enough reputation can edit it.
avatar image
0
Question by yoneclick · Jan 01, 2017 at 05:30 PM · c#programmingmathcurvebezier

How to get lateral normals of a bezier curve

Hi guys, first of all, I apologize for my bad english, it's not my first language. So, I've made my own bezier spline script and I'm working on things like "spline follower, and a script to spawn objects along the spline. But I got two problems.

1.The first is: The objects that follows the spline are moving with a unstable speed, (I know, a bezier curve has different velocities) but, can I do something to make the objects follow the spline in a stable speed? I've been looking for an answer for this all over the Internet but yet, came up with nothing.

2.The second problem is: Like I said, I'm working on a script to spawn objects along the spline, and the objects have to face the center of the spline (Like a fence, "looking forward"), so I tried to make the rotation of each instanced object equal to "BezierSpline.GetTangent();" and "BezierSpline.GetDirection" but none of them worked, the objects always get a weird rotation, and I've been thinking, if I get the inside normals of the curve, and set them as the rotation using "LookAt(normals) for example" maybe it works, but I have no idea of how to get the inside normals. My current script can only give me normals looking to Vector3.up.

Like this: (Green Lines are normals). alt text

But I actually need this (Red lines): alt text

So, can anyone help me please? Tell me if I wasn't clear enough.

screenshot-27.png (46.4 kB)
orla8.jpg (29.0 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
1
Best Answer

Answer by elenzil · Jan 01, 2017 at 08:54 PM

2) the tangent is what you want, i think.

I tried to make the rotation of each instanced object equal to "BezierSpline.GetTangent();"

how are you making the rotation equal to the tangent ? the tangent will be a vector, and rotations != vectors. i think you would want to use LookRotation.

but be sure to pay attention to frame of reference. ie, the Tangent vector should be in the same coordinate system as the object.

one way to achieve that would be: 1. add the tangent vector to the bezier point location in the same space. call it Point Pb. 2. convert the point Pb into world-space (Pw) 3. then convert Pw into the space of the object you want to orient. (Po) 4. subtract the object's position from Po. this will be the tangent vector in the coordinate system of the object.

there may be a more direct way as well.

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

8 People are following this question.

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

Related Questions

Multiple Cars not working 1 Answer

Subdivide Bezier Curves 3 Answers

how to use t variable in the bazier curve 2 Answers

Find Vector3 perpendicular to Vector3 A in direction of Vector3 B 1 Answer

Linear optimization 0 Answers


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