-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ruled surface with a point #64
Comments
See ruledSurface.cs:
|
Yes, that works. But with cone, it fails, I am trying to test the code, especially the triangulation algorithm, now this is not a path any more. |
Let me know if you need more information |
Ok, I will test some testcases from OCC. This repo is wonderful, hope that we can make it better. And here's the question:
I'm afraid that there will be some may-be easy questions. |
Hi, here is a short answer, since I am on vacation for a week: The BoxedSurfacesEx: the surface is subdivided into patches. Each patch is wrapped (enclosed) by a parallelepiped. So if we need for example the u/v coordinates of a 3d point on a surface, we first find the specific parallelepiped which contains the point, then we are already close to the u/v coordinate and can do the remaining steps by a GaussNewton approximation. Of course some surfaces override the PositionOf, because they can do it faster. (Maybe there is a better way to calculate PositionOf for a ruled surface, but since all surfaces implement the BoxedSurfaceEx, and BoxedSurfaceEx implements PositionOf, and I am lazy, I didn't implement it) Some surfaces have natural bounds (e.g. SphericalSurface, NURBS surface, but not the CylindricalSurface, which is infinite in one direction) and the u/v coordinate must be inside these bounds. Similar the projected curve (wich is 2d) is enclosed by triangles to enable fast intersection or other geometric operations. I appreciate very much if you do some test cases, this will improve the system |
Here's the case that to make a eccentric cone which can't make with a ruled surface.
The text was updated successfully, but these errors were encountered: