题意:给定四个点,判断形状
思路:先求个凸包,就能把四个点排序,然后就是利用几何去判断,利用点积判垂直,利用叉积判平行
还有这题有个坑啊,明明说好是没有点共线的,其实是有的,所以求凸包如果不是4个点,直接输出不规则四边形即可
代码:
#include
#include
#include
#include
#include
using namespace std;
const int...
分类:
其他好文 时间:
2015-03-05 17:01:47
阅读次数:
157
步骤如下:
1,做beginPoint和endPoint的差vectorDiff。
2,对vectorDiff和该三角面片的法向量normal做叉积cross。
3,beginPoint和cross相加得到vectorAdd。
4,做三个向量(1,1,z),(1,0,z),(0,1,z).这三个向量的第三个元素都是z,要保证线性无关(三个线性无关的向量确定一个平面)。
5,对这三个向量以及vectorAdd做四点行列式,如果行列式的值小于0,反转,否则不反转。...
分类:
其他好文 时间:
2015-03-02 22:29:25
阅读次数:
313
这是我人生中的第一个计算几何题,好好收藏一下。1、当一个点关于远点对称之后,除了两点之间的连线外,其他的任何直线都会讲两点分成两个部分2、极角排序3、线的旋转4、叉积求 sin#include #include #include #include using namespace std;class ...
分类:
其他好文 时间:
2015-02-09 10:44:59
阅读次数:
176
题解
需要考虑几种情况:
外切或外离。面积为0,注意要输出 0.000。
内切或内含或重合。面积为较小圆的面积。
相交,还需要讨论交点位置:
交点在两圆心中间 即异侧
交点在两圆心同侧
在求三角形面积的时候有两种方法:
运用三角形两边的叉积的绝对值的1/2计算。
运用海伦公式计算。
不过我试了所有方法仍然有一个点WA了,已经用while(1)实验出问题是出在交点在两圆心同侧的情况了。可能是精度问题...
分类:
其他好文 时间:
2015-02-08 00:31:14
阅读次数:
173
题解:
模板,利用Cross叉积表示的是有向面积,同样可以求凹多边形的面积。
代码:
总时间耗费: 5ms
总内存耗费: 256 kB#include
#include
#include
#include
using namespace std;const int maxn = 100 10;
int n;struct...
分类:
其他好文 时间:
2015-02-07 17:33:49
阅读次数:
139
点击打开链接
TOYS
Time Limit: 2000MS
Memory Limit: 65536K
Total Submissions: 11078
Accepted: 5312
Description
Calculate the number of toys that land in eac...
分类:
其他好文 时间:
2015-02-06 18:57:52
阅读次数:
175
刷了很久计算几何,好歹算是有些收获,总结一下吧。计算几何不同与解析几何,这里大部分使用的是向量和点,而不是解析式。 直线/射线:一个点+一个方向向量。 线段:两个端点。 多边形:按逆时针排序的点集。 圆:圆心+半径。 点积:两个向量的数量积。 叉积:两个向量组成的四边形的有向面积。基础部...
分类:
其他好文 时间:
2015-01-24 11:31:24
阅读次数:
182
题目大意:给定一个点集,任选四点构成一个凸多边形,求面积最大的凸多边形
枚举四边形的对角线,每次固定一个点,扫对角线上的另一个点
每次找到对角线两侧离对角线最远的点,由于两边的点的移动是单调的,因此可以用旋转卡壳维护
此外四边形的面积用对角线叉积的绝对值除以2就可以算出来了- -
#include
#include
#include
#include
#include
#defi...
分类:
其他好文 时间:
2015-01-23 13:26:38
阅读次数:
149
实现功能——输入N个点,求出按此顺序围成的图形的面积原理:其实就是个向量的叉积运算(详见UASCO-nocow:计算几何)(HansBug:临睡觉了,水一发呵呵哒,额。。。phile犇不在好寂寞TT) 1 var 2 i,j,k,l,m,n:longint; 3 a:array[0..1...
分类:
编程语言 时间:
2015-01-21 01:10:56
阅读次数:
229
题意:求一个不规则简单多边形的重心。解法:多边形的重心就是所有三角形的重心对面积的加权平均数.关于求多边形重心的文章:求多边形重心用叉积搞一搞就行了。代码:#include #include #include #include #include #include #define Mod 100000...
分类:
其他好文 时间:
2015-01-20 19:58:05
阅读次数:
175