gpt4 book ai didi

java - 计算凹二维多边形相对于其原点的惯性矩

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:49:05 25 4
gpt4 key购买 nike

我想计算 (2D) 凹多边形的惯性矩。我在网上找到了这个。但是我不太确定如何解释公式...

Formula http://img101.imageshack.us/img101/8141/92175941c14cadeeb956d8f.gif

1)这个公式对吗?
2) 如果是这样,我对 C++ 的转换是否正确?

float sum (0);
for (int i = 0; i < N; i++) // N = number of vertices
{
int j = (i + 1) % N;
sum += (p[j].y - p[i].y) * (p[j].x + p[i].x) * (pow(p[j].x, 2) + pow(p[i].x, 2)) - (p[j].x - p[i].x) * (p[j].y + p[i].y) * (pow(p[j].y, 2) + pow(p[i].y, 2));
}
float inertia = (1.f / 12.f * sum) * density;

马丁

最佳答案

#include <math.h> //for abs
float dot (vec a, vec b) {
return (a.x*b.x + a.y*b.y);
}
float lengthcross (vec a, vec b) {
return (abs(a.x*b.y - a.y*b.x));
}
...
do stuff
...
float sum1=0;
float sum2=0;
for (int n=0;n<N;++n) { //equivalent of the Σ
sum1 += lengthcross(P[n+1],P[n])*
(dot(P[n+1],P[n+1]) + dot(P[n+1],P[n]) + dot(P[n],P[n]));
sum2 += lengthcross(P[n+1],P[n]);
}
return (m/6*sum1/sum2);

编辑:很多小的数学变化

关于java - 计算凹二维多边形相对于其原点的惯性矩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3329383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com