社区
C语言
帖子详情
再求教一个算法问题
diejia_new
2011-03-26 01:40:28
一个任意的多边形(有n个边),不规则,求面积;
用C语言实现
下面是别人给的提示,不过我还是不知道怎么做
以将边安装顺时针顺序排序,然后全部映射到X方向
...全文
101
5
打赏
收藏
再求教一个算法问题
一个任意的多边形(有n个边),不规则,求面积; 用C语言实现 下面是别人给的提示,不过我还是不知道怎么做 以将边安装顺时针顺序排序,然后全部映射到X方向
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xali
2011-03-26
打赏
举报
回复
//求多边形面积的简单方法
#include "stdio.h"
typedef struct tagPoint
{
double x;
double y;
}FPoint;
double Area(FPoint *pArray,int NumPoint)
{
if(NumPoint<3)return 0;
double sum = 0;
int m = 1;
for(;;)
{
if(NumPoint < 3)break;
FPoint r1;
r1.x = pArray[m].x - pArray[0].x;
r1.y = pArray[m].y - pArray[0].y;
FPoint r2;
r2.x = pArray[m+1].x - pArray[m].x;
r2.y = pArray[m+1].y - pArray[m].y;
sum += (r1.x * r2.y - r2.x * r1.y);
m++;
NumPoint --;
}
double result = (sum>0)?(sum/2.):(-sum/2.);
return result;
}
//test
void main()
{
FPoint pArray1[4]={{1,1},{1,2},{2,2},{2,1}};
FPoint pArray2[5]={{0,0},{0,2},{2,2},{1,1},{2,0}};
FPoint pArray3[9]={{0,0},{2,0},{2,1},{0,1},{0,2},{-2,0},{-1,0},{-1,-1},{0,-1}};
printf("Area1 = %f\n",Area(pArray1,4));
printf("Area2 = %f\n",Area(pArray2,5));
printf("Area3 = %f\n",Area(pArray3,9));
}
super_admi
2011-03-26
打赏
举报
回复
应该划分为三角形来计算,且应该分两次划分。
第一划分,是对多边形分类:凸多边形和凹多边形。
评判标准:整个多边形只在其任意一条边的一侧,则为凸多边形。若存在一条边(两头无限延长),将多边形一分为二,则此多边形为凹多边形。
划分完成:第一次划分完后,你应该得到一组凸多边形。
第二次划分,是将凸多边形划分为三角形。
在凸多边形上任意选取一个起点,然后连接该点和多边形上的其它点,则可以把凸多边形划分为多个三角形。
分别对每个三角形求面积,最后相加,则得到最后的面积。
baihacker
2011-03-26
打赏
举报
回复
如果是简单多边形的话,也就是说两条边不自交,可以
通过 OA * OB + OB * OC ... OX * OA 来求
OA表示0到A这个顶点的向量,说白了在值上和A的坐标相同。
*表示叉积(x0,y0)*(x1,y1) = x0 * y1 - y0 * x1
也是
|x0 y0|
|x1 y1|
这个矩阵的行列式
求出来除以2,再取绝对值就行了。
diejia_new
2011-03-26
打赏
举报
回复
不规则,不好划分
ouyh12345
2011-03-26
打赏
举报
回复
应该先划分成三角形吧
C语言
算法
精华
随机数生成
算法
anya Re: 伪随机数的生成
算法
? anya 计算并输出表达式结果 anya 计算并输出表达式结果2 anya 递归与栈溢出 anya Re: Excel 规划求解
问题
,求助,请教!! anya Re: anya:请教
一个
问题
anya Re: 如何给汉字分界? anya Re: 八皇后
算法
问题
请教? anya Re: 急寻图象压缩
算法
anya 游戏中最佳路径的
问题
anya 平面点覆盖
问题
求教
anya Re: 平面点覆盖
问题
求教
anya Re: 平面点覆盖
问题
求教
anya Re: 平面点覆盖
问题
求教
anya Re: 集合求交 anya Re: 微软考题 anya Re: 微软考题 anya Re: 请问自然图象的概率分布函数 anya 华
求教
C++等等一系列的
问题
这是
一个
值得人深思的事情,希望莘莘学子能都好好的考虑一下这些内容的背后
数据结构与
算法
课程设计心得体会学习体会(44).docx
数据结构与
算法
课程设计心得体会学习体会(44).docx
刚做了象棋和跳棋游戏
求教
如何 实现游戏的在线即时对战功能
NULL 博文链接:https://jiangxiao-2000.iteye.com/blog/1897709
吴恩达老师所授机器学习课程的课后练习题
资源下载链接为: https://pan.quark.cn/s/7d86e351e2eb 吴恩达老师所授机器学习课程的课后练习题(最新、最全版本!打开链接下载即可用!)
C语言
70,037
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章