Comments (1)
The quadratic arises from:
dot(linePosition, linePosition) - radius * radius + t * 2 * dot(linePosition, lineDirection) + t^2 * dot(lineDirection, lineDirection) = 0
By inspection, one would expect the coefficient b
to then be 2 * dot(linePosition, lineDirection
, but in the code, it's computed as dot(linePosition, lineDirection)
.
So, the 'true' discriminant would be:
4 * dot(linePosition, lineDirection)^2 - 4 * dot(linePosition, linePosition) * dot(lineDirection, lineDirection)
.
But note that the sign of the discriminant, and thus intersection state, does not change when scaling by a positive scalar. The common factor 4 can be pulled out.
You could write the quadratic equation to match like so: (b +- 2 * sqrt(b^2 / 4 - a * c)) / (2 * a)
. We can go further: (2 * (b/2) +- 2 * sqrt(b^2 / 4 - a * c)) / (2 * a)
, which simplifies to (b / 2 +- sqrt(b^2/4 - a * c)) / a
. Since b
here includes a factor of 2, the divisions disappear when actually calculating the result.
from bepuphysics2.
Related Issues (20)
- Consider incremental tree refines on insertion HOT 1
- Instability caused by ApplyImpulse HOT 1
- Tree metanodes contain obsolete data
- Regressions on 16-wide vectors HOT 1
- Consider `Compound` vs `BigCompound` heuristic helper
- Building convex hull fails for a specific mesh (.obj included) and results in memory corruption HOT 5
- Risky stackallocs
- Spin/Friction Issues with the Character Demo HOT 2
- Remove constraint while retaining other constraint references HOT 7
- Handle versioning
- NaNs after collision bug ? HOT 1
- Assertion raised in AddUnsafely HOT 11
- 2.5.0-beta.20 - Convex hull error HOT 8
- Flat "fractal like" mesh fails to compute convex hull (unsure if bug or expected) HOT 4
- Individual Mesh-Mesh Collision HOT 11
- Changing demos tickrate HOT 1
- Demos do not work on Mac OSX HOT 4
- BepuUtilities: Implementation for Matrix4x4Wide? HOT 2
- Freeze and explosive memory growth when newing a ConvexHull with specific input HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bepuphysics2.