计算缩放多边形的比例,得到给定的多边形面积

compute ratio of scaling polygon to get given area of polygon

本文关键字:多边形 缩放 计算      更新时间:2023-10-16

我有一组多边形的点。我可以得到它的面积。

例如,我有多边形。面积((=1500;

现在,我需要做一个多边形,给出面积1350,如何缩放它的比例值。我试着通过边界框比例来缩放它。但它不起作用。我试着这样做。但答案不正确。

获取长方体的多边形(最小点和最大点(的边界长方体。

float OldArea = 1500.0f;
float newArea = 1350.0f;

Vec2 Min_Point =  polygon.Min();
Vec2 Max_Point = polygon.Max();

float SizeX = Min_Point.SizeX(Max_Point);// it give Length of X of Bounding Box (x2-x1)
float SizeY = Min_Point.SizeY(Max_Point);//it give Length of Y of Bounding Box (y2-y1)

float ratio  = SizeX/SizeY;

float aa = sqrt(NewArea/ ratio); // get first Length
float bb =  NewArea/aa;  // ge4t second length
float Scale_Ratio = (bb/SizeY ); // get scale ratio // but this is not correct.

请有人帮帮我。提前感谢。

Scale_Ratio=Math.sqrt(newArea/oldArea(

这是因为比例将应用于面积两次——一次是在乘以宽度时,一次是乘以高度时,所以缩放面积的比例是应用于每个维度的比例的平方。