Discovering the perfect alignment for the standard orientation

I've been working on implementing a collision system for my racing game using Three.js. Following a helpful guide, I'm trying to calculate the final linear and angular velocities post-collision between two cars.

Here's the link to the guide I'm referencing.

My main challenge lies in determining the correct direction for the normal vector. The guide suggests using the vector n perpendicular to the impacted body B's edge and pointing outward from it. I've found this method useful:

How do I calculate the normal vector of a line segment?

While finding the numerical value of the normal is straightforward, ensuring that my program uses the proper direction poses difficulties. Specifically, I want to use the blue normal instead of the red one. Here's an illustration to clarify my concern.

Answer №1

It is impossible for any algorithm to determine which side of the surface you are focusing on, therefore it is your responsibility to provide that clarification.

You have the option to select the correct orientation by utilizing either Rap x Rbp or Rbp x Rap, but the choice ultimately depends on the specific orientation conventions applied in your particular model. (Unfortunately, with limited information available, I am unable to offer further guidance.)

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Receiving an error of "Undefined" when attempting to retrieve an array that is nested within an object

I've been struggling with the same question for a while now. Despite my knowledge of dot and bracket notation, as well as attempts using empty keys, I'm still unable to make it work. The situation involves a JSON array of objects obtained from an ...

Show a toast message and reset the form upon submission

Here I have created a contact form using HTML, CSS, and JavaScript. However, I'm facing an issue where the form redirects me to a page displaying the submitted details after clicking the submit button. I want to display a toast message instead and res ...

Which function offers quicker rendering: fillRect() or the combination of moveTo(), lineTo(), and stroke()?

I am currently working with a legacy code where the timeline for a video is rendered using Canvas instead of DOM rendering, as it is believed to be faster. The original code used the fillRect() method, but was later changed to a combination of moveTo(), li ...

Adjust fancybox height using jQuery

I am working on a project where I need to display a fancybox containing an iframe from another domain. The iframe has dynamic content and its height may change based on the pages it navigates to or the content it displays. I have access to the code of the ...

What is the best way to send information from one screen to a flatlist in React Navigation?

Currently, I am retrieving data from an API in the form of a JSON file. My goal is to pass this data from the main app to the appStack and then to the sessionsStack before displaying it on the home page. However, my console logs indicate that the data only ...

Verify your identity using Google reCaptcha during Passport authentication

I am currently working on integrating google reCaptcha into my signup form's back-end, which already includes passport authentication. The code I have so far looks like this: app.get('/signup', function(req, res) { // render the ...

Ways to eliminate several DOM elements at once with a single JavaScript function

In my current project, I am faced with the task of removing various DOM elements from the page. This includes scenarios where I need to remove a single element as well as cases where I need to remove a collection of elements such as a NodeList or an HTMLCo ...

Vue: add a CSS class to products when they are in the shopping cart

As I delve into creating a shopping cart using laravel + vue, I am encountering a major obstacle related to vue's functionality. Within my cart component, the goal is to allow users to effortlessly add or remove products by simply clicking. When a pr ...

When I refresh the page, I receive the following message: The file "/assets/css/bootstrap.min.css" was blocked because of a MIME type mismatch (X-Content-Type-Options: nosniff) and was identified as

I encountered an issue while testing my MERN stack app. Upon refreshing the browser, I noticed errors on a couple of components: The resource from “http://localhost:3000/profile/assets/css/bootstrap.min.css” was blocked due to MIME type (“text/html ...

Having trouble importing components in NativeScript Vue?

I am just starting to explore the world of NativeScript and working on my first project using it. I am facing an issue while trying to incorporate a header component into my main App. Unfortunately, when I run the iOS emulator, the header does not appear o ...

Issue with October CMS: Radio button selection triggers an Ajax call, but clicking twice in quick succession causes the content

I am currently utilizing October CMS and materializecss to develop a form with options on one of my pages. The form functions correctly as it dynamically loads content when different options are clicked. However, I have identified a problem where clicking ...

What is the most effective way to set up HTTPS for handling all connections in Node.js?

In my project to create a stateless authentication system using Double Submit Cookie in Node.js/ExpressJs, I am exploring ways to ensure all connections are made over HTTPS. My goal is to optimize for handling high traffic while also prioritizing security ...

Eslint was unexpectedly unable to detect any errors in the .ts files

After creating a SvelteKit project with npm create svelte@latest, I included some .ts files for a particular library. However, when running eslint ., it fails to detect any errors. The default eslint config generated from Svelte is as follows: .eslintrc. ...

Tips for avoiding node.js from freezing during a large file upload

To safeguard the application I am currently developing from potential payload DOS attacks caused by individuals attempting to upload excessively large files, I have implemented the following middlewares (leveraging express-fileupload and body-parser): impo ...

Is there a way to integrate jQuery and Javascript into a Firefox add-on?

Having trouble creating a new element on the page? After checking both the page and domain during onload, it seems that everything is in order. But how can you successfully create a new element in the correct window page? window.addEventListener("load", f ...

Switching out the browser's scrollbar for buttons

I've been searching online for a solution, but so far I haven't found anything. Although, I'm pretty sure I've come across something similar to what I need before. Essentially, I have a large table created by the user that will likely ...

Generate a new object from the contents of a div

Having the HTML structure below: <div id="main"> <div id="myDiv1"> <ul> <li>Abc</li> <li>Def</li> </ul> </div> <div id="myDiv2"> <ul> <li>Ghi</l ...

Handle errors originating from unsuccessful connections to a server named "Event" when using RxJS's fromEvent method

Using rxjs fromEvent to establish a connection with a named sse Event, I am looking to handle an Error in case of connection loss namedEvent() { try { const eventSource = new EventSource( 'adress' ); return fromEvent ...

Javascript function does not return a value

Having trouble retrieving a string value from this function: function loadPage(url) { var xhttp = new XMLHttpRequest(); xhttp.open("GET", url, true); xhttp.send(); xhttp.onreadystatechange = function() { if (xhttp.readyState == 4 ...

Using the OR operator in an Angular filter

How can I create a filter with a range slider that shows multiple categories when it's in a certain position? I have tried using the code below to filter based on the range, but it only captures the first word after the OR operator. Can anyone provid ...