this post was submitted on 21 Sep 2025
17 points (100.0% liked)
Godot
7104 readers
4 users here now
Welcome to the programming.dev Godot community!
This is a place where you can discuss about anything relating to the Godot game engine. Feel free to ask questions, post tutorials, show off your godot game, etc.
Make sure to follow the Godot CoC while chatting
We have a matrix room that can be used for chatting with other members of the community here
Links
Other Communities
- !inat@programming.dev
- !play_my_game@programming.dev
- !destroy_my_game@programming.dev
- !voxel_dev@programming.dev
- !roguelikedev@programming.dev
- !game_design@programming.dev
- !gamedev@programming.dev
Rules
- Posts need to be in english
- Posts with explicit content must be tagged with nsfw
- We do not condone harassment inside the community as well as trolling or equivalent behaviour
- Do not post illegal materials or post things encouraging actions such as pirating games
We have a four strike system in this community where you get warned the first time you break a rule, then given a week ban, then given a year ban, then a permanent ban. Certain actions may bypass this and go straight to permanent ban if severe enough and done with malicious intent
Wormhole
Credits
- The icon is a modified version of the official godot engine logo (changing the colors to a gradient and black background)
- The banner is from Godot Design
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
You mentioned the areas being countries. This leads me to believe that they are concave figures, correct? If you are unfamiliar, a concave figure is something that has a space that doubles back into the interior of the shape. So an o is convex, and a c is concave, as an example. Convex shapes are much simpler to find the area of. You can use a Riemann Sum as others have suggested. I would probably just pick a point inside the shape and do a bunch of triangles around with the point as an apex and the bases as two points on the edge of the surface, then sum up the areas of each triangle. You could even probably use a triangulation algorithm built into the engine to do this. (I am unfamiliar with the specifics of the Godot engine).
For concave shapes it becomes a little more complex. It has been mentioned that you can draw a bounding box around the shape, so that would allow you to calculate it using a numerical method. Take random samples inside the bounding box and count up the number that are inside the shape and divide by the total number of samples. The value you get will be the % of the area of the bounding rectangle that the shape takes up, so just multiply the easy area by the % and you will get an answer that is close enough. It may take a bit to get the sample count right, but it will get there. Try to make sure the samples are as uniform as possible. You could even scatter the sample points then relax them for a couple iterations before counting to increase accuracy without increasing samples.