-
Notifications
You must be signed in to change notification settings - Fork 23
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
geoDesic #72
Comments
Fantastic! Can we use a better name, though? I know about https://en.wikipedia.org/wiki/Geodesic_polyhedron and https://en.wikipedia.org/wiki/Geodesic_dome but the "geodesic" term on its own is just the shortest path on the surface. |
Of course we can. I just needed something to start with. But you can see what it looks like so far here |
I was looking further into creating different frequency geodesic spheres when trying to split i triangle length in three parts i do the following:
but it looks like it generates some artifacts. Is there a better way to do this? |
I think what is happening here is that the triangular faces (in blue) do not correspond to the voronoi cells of their centroids (in red); for instance the top vertex defined for triangle 8 is closer to the centroid of triangle 3. In fact I don't think we can use the voronoi projection for this geometry, and must instead construct the corresponding polyhedral projection. (images generated at https://observablehq.com/d/5a8c5a187d98fa01) |
ah thanks for these images and all your help in getting me to understand how this works. so why this worked in the other polyhedrons and not here is because in a geodesic sphere not all triangles are the same shape. That is why the voronoi can run into issues determining the edges. As the distance from the center will not always produce the right face now. This will work if all faces are equal shapes. I will switch it over to the polyhedral projection. |
currently voronoi uses this function to determine which face a coordinate is on
i will do some homework to figure out how to do the calculations for a geodesic sphere. have a feeling this might help me get there pentaDome_070206.pdf |
Exactly: |
i will first as quick and dirty try that using this method |
lol here they call it the fill-rule but i read it as the Fil-rule |
i am trying this
and feeding it into the projection like this
but that results in an error: TypeError: Cannot read properties of undefined (reading 'project') so i might have to go into d3.geoPolyhedral() all the way |
Note that |
True and the difference then is that instead of straight lines we are
dealing geodesics?
…On Wed, 14 Aug 2024, 12:43 Philippe Rivière, ***@***.***> wrote:
Note that d3.polygonContains is for planar polygons, here we need the
equivalent for spherical coordinates (d3.geoPolygonContains).
—
Reply to this email directly, view it on GitHub
<#72 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAFZWJYMNZTEMZO5CO36YRLZRMYEPAVCNFSM6AAAAABLGW5GTSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOBYGQZDANZVHA>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
succes! it is called geoContains and it works for any geoJson object.
|
oops, sorry for the typo! The projection is beautiful! |
Using this I can generate a cover for a geodesic dome for a specific geographical location. Later this week I will create a pull request for it. Right now I hacked it into the voronoi by replacing the findface function. |
lol later this week, turned into a couple of months later. Anyway, i will have a look around where my code is to see if a can create a pull request for this. |
Hi,
I was messing around again and created a v2 geoDesic projection. I starts of with the icosahedron and splits up the triangle in sub triangles. For a v2 a triangle is split up into 4 sub triangles.
Here is an example
I am currently working on making the projection parametric so geoDesic(2) would create a v2 and geoDesic(3) would create a v3.
If you are interested in adding this I can create a pull request.
The text was updated successfully, but these errors were encountered: