Skip to main content
Solved

Create sloped 3D polygon from 2D polygon but retain planar spatial extent

  • September 6, 2022
  • 4 replies
  • 91 views

Forum|alt.badge.img

I have a series of 2D polygons with attributes for slope and aspect. I want to rotate them about a horizontal plane (using a 3DRotator) so that they become 3D shapes with these properties of slope and aspect. However, I want the spatial extent of the shape to stay the same, i.e. if I were to force it to 2D them again, they would look identical to how they did before. Effectively, this means that all of the vertices need to be elevated/dropped in the vertical plane. This is not so much a rotation as a stretch.

 

As an example, if the polygon has a slope attribute of 80 degrees, by the time the shape has been made into a 3D sloping polygon, the planar extent of the shape would be much smaller and, if it were forced to 2D again, it would be also much smaller. The higher the "slope" value, the more the shape would shrink in its planar extent.

 

Does anyone have any suggestions for how to achieve this? I effectively want the reverse of a 2D forcer.

Best answer by caracadrian

Create a surface that matches your desired "model" and drape the 2D polygons on the surface: SurfaceModeler, SurfaceDraper.

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

4 replies

caracadrian
Contributor
Forum|alt.badge.img+23
  • Contributor
  • Best Answer
  • September 6, 2022

Create a surface that matches your desired "model" and drape the 2D polygons on the surface: SurfaceModeler, SurfaceDraper.


virtualcitymatt
Celebrity
Forum|alt.badge.img+47

Another option could be to first buffer the areas, perform your rotation and the clip the result with the original 2D polygon.​


Forum|alt.badge.img
  • Author
  • September 7, 2022

Create a surface that matches your desired "model" and drape the 2D polygons on the surface: SurfaceModeler, SurfaceDraper.

Great idea! I'll implement this now


Forum|alt.badge.img
  • Author
  • September 7, 2022

Another option could be to first buffer the areas, perform your rotation and the clip the result with the original 2D polygon.​

Yes, this is a good idea. I think draping on the surface (as suggested by cacadrian) may be quicker but I will try both.