c++程序解释,中括号里的必须说明,谢谢
附录一:任意凸多边形重心C++算法#include<iostream>#include<cmath>#include<iomanip>usingnamespacestd;...
附录一:任意凸多边形重心C++算法
#include <iostream>
#include <cmath>
#include <iomanip> using namespace std; 【3个#是?】
struct point
{
double x; 【必须是double?】
double y;
};
point gravity(point *p, int n)
{
double area = 0;
point center;
center.x = 0;
center.y = 0;
for (int i = 0; i < n-1; i++)
{
area += (p[i].x*p[i+1].y - p[i+1].x*p[i].y)/2; 【什么意思?】
center.x += (p[i].x*p[i+1].y - p[i+1].x*p[i].y) * (p[i].x + p[i+1].x);
center.y += (p[i].x*p[i+1].y - p[i+1].x*p[i].y) * (p[i].y + p[i+1].y);
}
area += (p[n-1].x*p[0].y - p[0].x*p[n-1].y)/2;
center.x += (p[n-1].x*p[0].y - p[0].x*p[n-1].y) * (p[n-1].x + p[0].x);
center.y += (p[n-1].x*p[0].y - p[0].x*p[n-1].y) * (p[n-1].y + p[0].y);
center.x /= 6*area;
center.y /= 6*area;
return center;
} 展开
#include <iostream>
#include <cmath>
#include <iomanip> using namespace std; 【3个#是?】
struct point
{
double x; 【必须是double?】
double y;
};
point gravity(point *p, int n)
{
double area = 0;
point center;
center.x = 0;
center.y = 0;
for (int i = 0; i < n-1; i++)
{
area += (p[i].x*p[i+1].y - p[i+1].x*p[i].y)/2; 【什么意思?】
center.x += (p[i].x*p[i+1].y - p[i+1].x*p[i].y) * (p[i].x + p[i+1].x);
center.y += (p[i].x*p[i+1].y - p[i+1].x*p[i].y) * (p[i].y + p[i+1].y);
}
area += (p[n-1].x*p[0].y - p[0].x*p[n-1].y)/2;
center.x += (p[n-1].x*p[0].y - p[0].x*p[n-1].y) * (p[n-1].x + p[0].x);
center.y += (p[n-1].x*p[0].y - p[0].x*p[n-1].y) * (p[n-1].y + p[0].y);
center.x /= 6*area;
center.y /= 6*area;
return center;
} 展开
2个回答
展开全部
先告述我们这代码是干什么的!!!
所有预处理指令都以#开头
要使用小数的时候使用浮点数,double是浮点数(如果用整数的话运算中小数部分直接向零取整(就是直接去除)导致丧失精度)
哪一行的意思:
area += (p[i].x * p [i+1].y - p[i+1].x * p[i].y) / 2;
p是point类型指针,包含x,y两个浮点数(自己看定义),对p使用下表运算符,看来是当作数组指针用了
很简单么,+= 是复合赋值运算符,就是两数相加在把结果赋给左边的对象
二元运算符 * 就是乘法, / 是除法
area 加上(((p[i].x * p[i+1].y) - (p[i+1].x * p[i].y)) / 2)的得数再赋值给area
最后问一下你C++学的咋样?我14毫无压力
展开全部
3个#是?导入头文件,这个都不知道需要好好看书
必须是double?当然不是,只是精度的问题int, float,
什么意思?正多边形面积的计算公式.
http://wenku.baidu.com/link?url=n7rQLoo7d2Ztkae8IWjm-T9XUwxJD4snOYfVrAqapE5Q_GGQRkzEAvDsZEzzxv8ptEdgMOzSaqBCq-_w2G-i0fNwQjgoF4DZhNM8bSVqFRq慢慢看一下
必须是double?当然不是,只是精度的问题int, float,
什么意思?正多边形面积的计算公式.
http://wenku.baidu.com/link?url=n7rQLoo7d2Ztkae8IWjm-T9XUwxJD4snOYfVrAqapE5Q_GGQRkzEAvDsZEzzxv8ptEdgMOzSaqBCq-_w2G-i0fNwQjgoF4DZhNM8bSVqFRq慢慢看一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询