判断点是否在三角形内部(xdoj 1125)
来源:互联网 发布:jre源码下载 编辑:程序博客网 时间:2024/05/18 12:29
先贴题目:xdoj1125
思路:给了三角形的三个顶点a,b,c,和一个点x;
判断abc的面积 是否= xab的面积+xbc的面积+xac的面积;
思路很简单。。。关键在于怎么求三角形面积。
一开始我的方法是:割补法,所求面积=矩形面积-三个直角三角形的面积。
然而我还是太天真。。。。在wa的我快哭了的时候,终于发现,这个方法解决不了钝角三角形啊啊啊啊啊啊啊~~!!
于是乎,亲爱的同志们,还是老老实实的用海伦公式吧。。。
上代码:
#include <bits/stdc++.h>using namespace std;double area(double x1,double y1,double x2,double y2,double x3,double y3){ double a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)),b=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3)),c=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2)); return sqrt((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a))/4.0;}int main(){ double x,y,x1,y1,x2,y2,x3,y3; while (scanf("%lf %lf %lf %lf %lf %lf %lf %lf",&x1,&y1,&x2,&y2,&x3,&y3,&x,&y)!=EOF) { if (abs(area(x, y, x1, y1, x2, y2)+area(x, y, x1, y1, x3, y3)+area(x, y, x2, y2, x3, y3)-area(x1, y1, x2, y2, x3, y3))<0.001) { printf("Orz\n"); } else printf("stO\n"); } return 0;}
0 0
- 判断点是否在三角形内部(xdoj 1125)
- 判断点是否在一个三角形内部
- 判断点是否在三角形内部
- 判断点是否在三角形内部
- 判断点是否在三角形内部
- 判断点是否在三角形内部
- 判断点是否在三角形内部
- 判断点是否在一个三角形内部
- 三角形有向面积 + 判断点是否在三角形内部
- 如何判断一个点是否在三角形内部
- 如何判断一个点是否在三角形内部
- 如何判断一个点是否在三角形内部
- 如何判断一个点是否在三角形内部
- 判断点P是否在三角形ABC内部
- 其他题目---判断一个点是否在三角形内部
- 判定一个点是否在三角形内部
- 如何判断一个点在三角形内部
- 如何判断一个点是否在一个多边形内部+三角形有向面积公式
- 【MongoDB】-MongoVUE增删改查使用说明
- 多系统引导(小白篇)
- DataGridView通过界面对单元格赋值时及时刷新显示
- printf输出格式总结
- 212876 - The new archiving tool SAPCAR
- 判断点是否在三角形内部(xdoj 1125)
- 安卓系统中的文件读写操作
- UIGraphicsBeginImageContext 生成图片模糊
- 怎么更换eclipse的workspace
- 设计模式笔记(八)--迭代器模式、组合模式
- EditText设置可以编辑和不可编辑状态
- POJ 2115 C Looooops(单变元模线性方程)
- poj2362Square
- Sublime Text 2:安装使用ctags