# Is there any way to create polygons given vertexes?

Is there any way to create polygons given vertexes?

UUhhhh I want this!!! API to create and modify meshes during runtime

4 Likes
``````local wedge = Instance.new("WedgePart");
wedge.Anchored = true;
wedge.TopSurface = Enum.SurfaceType.Smooth;
wedge.BottomSurface = Enum.SurfaceType.Smooth;

local function draw3dTriangle(a, b, c, parent)
local edges = {
{longest = (c - a), other = (b - a), origin = a},
{longest = (a - b), other = (c - b), origin = b},
{longest = (b - c), other = (a - c), origin = c}
};

local edge = edges[1];
for i = 2, #edges do
if (edges[i].longest.magnitude > ed.   ge.longest.magnitude) then
edge = edges[i];
end
end

local theta = math.acos(edge.longest.unit:Dot(edge.other.unit));
local w1 = math.cos(theta) * edge.other.magnitude;
local w2 = edge.longest.magnitude - w1;
local h = math.sin(theta) * edge.other.magnitude;

local p1 = edge.origin + edge.other * 0.5;
local p2 = edge.origin + edge.longest + (edge.other - edge.longest) * 0.5;

local right = edge.longest:Cross(edge.other).unit;
local up = right:Cross(edge.longest).unit;
local back = edge.longest.unit;

local cf1 = CFrame.new(
p1.x, p1.y, p1.z,
-right.x, up.x, back.x,
-right.y, up.y, back.y,
-right.z, up.z, back.z
);

local cf2 = CFrame.new(
p2.x, p2.y, p2.z,
right.x, up.x, -back.x,
right.y, up.y, -back.y,
right.z, up.z, -back.z
);

-- put it all together by creating the wedges

local wedge1 = wedge:Clone();
wedge1.Size = Vector3.new(0.2, h, w1);
wedge1.CFrame = cf1;
wedge1.Parent = parent;

local wedge2 = wedge:Clone();
wedge2.Size = Vector3.new(0.2, h, w2);
wedge2.CFrame = cf2;
wedge2.Parent = parent;
end
``````

3 Likes

Im right now using it, but it has issues

1. Redundant faces (back, side). For larger poly u can do the math
2. Because it’s 0.05 thick (roblox min size), when 2 triangles have different angles and a common edge, one can see the gap opening

1 Like

Currently the only way to generate polygons from vertices is to use the method you’re already using - triangular parts. You can improve upon it perhaps by creating an equivalently shaped triangular part using blender that only has one face and a very thin thickness, but you might run into problems with players clipping through the parts if they’re moving too fast.

1 Like

Is there something like a voting for a feature request?

You can use Post Approval to reply to the feature request, explaining why you need the feature and how it would help you solve your problems.

For some reason I can’t do reply for that topic… duno

1 Like

You can inset each triangle by half the thickness of the wedgeparts to get rid of those gaps. This will look even worse if you have external corners that are more than `90` degrees tho. A solution that looks good no matter what is to put a `SpecialMesh` in each wedge, set the `MeshType` to `"Wedge"` and the `Scale` to `(0, 1, 1)`. This will make the collision shapes different from the visual shape, which can be confusing if you need to to hit detection or something. It’ll be off by `0.05` studs, which might not be noticeable in your game.

6 Likes

You can still follow the instructions in the rules for categories that disallow use of the reply button.

Wow thanks. The scale thing works for me for now

1 Like