答案 0 :(得分:2)
如果您正在谈论引力中心,那么它将如下所示:
G = (A + B + C + D) / 4
means:
xG = (xA + xB + xC + xD) / 4
yG = (yA + yB + yC + yD) / 4
您可以在这里看到:Geometric centroid
答案 1 :(得分:1)
在评论之后,使用this Wikipedia page中的公式:
...您可以计算对角线的交点,假设多边形是凸的(即对角线始终相交)。
请注意,点索引与多边形的索引不同:对角线分别位于点
1 – 3
和2 – 4
之间,而多边形点的顺序为{{1 }}。
工作片段:
1 - 2 - 3 - 4
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
function line (ax,ay,bx,by) {
ctx.beginPath();
ctx.moveTo(ax,ay);
ctx.lineTo(bx,by);
ctx.stroke();
}
var x1 = 100 ;
var y1 = 100 ;
var x2 = 110 ;
var y2 = 320 ;
var x3 = 400 ;
var y3 = 200 ;
var x4 = 300 ;
var y4 = 100 ;
// Lines
line(x1,y1,x2,y2) ;
line(x2,y2,x3,y3) ;
line(x3,y3,x4,y4) ;
line(x1,y1,x4,y4) ;
// Diagonals
line(x1,y1,x3,y3) ;
line(x4,y4,x2,y2) ;
var div = (x1-x3)*(y2-y4)-(y1-y3)*(x2-x4) ;
var divx = (x1*y3-y1*x3)*(x2-x4) - (x1-x3)*(x2*y4-y2*x4) ;
var divy = (x1*y3-y1*x3)*(y2-y4) - (y1-y3)*(x2*y4-y2*x4) ;
var x = divx/div ;
var y = divy/div ;
$("#x").val(x) ;
$("#y").val(y) ;
// Center
line(x,y-10,x,y+10) ;
line(x-10,y,x+10,y) ;