![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算几何:叉积
skajre
这个作者很懒,什么都没留下…
展开
-
POJ 2007 Scrambled Polygon
向量叉积a,b如果为正,那么a在b的逆时针180度内,否则b在a的逆时针180度内,所以只要叉积排序就可以。尽量使用cmp,重载运算符需要在结构体内。#include#include#includeusing namespace std;typedef pair Point;int operator ^ (Point p,Point q){ return p.first*q.原创 2016-08-04 21:41:07 · 176 阅读 · 0 评论 -
POJ 1569 Myacm Triangles
这题有两种方法,一种是用叉积来判断点是否是在三角形内或者三角形的边上。一开始脑子抽了,没法线叉积德时候以下是叉积代码://// main.cpp// Richard//// Created by 邵金杰 on 16/8/7.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#inclu原创 2016-08-07 09:21:12 · 221 阅读 · 0 评论 -
POJ 3304 Segments
这题做了我两天,把问题复杂化了,其实只要判断枚举的直线与所有线段有没有交点即可,判断有没有交点用叉积,还有就是题目已经说了,距离小于1e-8算同一点,所以在枚举的时候,如果两个点距离小于1e-8,那么直接跳过这个点,枚举下一个点,因为这两个组成的是点,而不是一个向量。//// main.cpp// Richard//// Created by 邵金杰 on 16/8/8.//原创 2016-08-08 14:13:16 · 164 阅读 · 0 评论 -
POJ 1039 Pipe
这题做了整整一下午,被折磨得死去活来。思路是枚举两个端点,然后如果跟管道拐口的线都有交点则可以穿过整个管道,我一开始枚举端点,然后跟拐口的线比,然后如果没有交点,那么就计算x的值,但是这样会有一个问题,那就是如果枚举的两个端点前面有线没有相交,那么他会计算x的值,导致x的值变小了,所以在判断点前的线时,单独判断就好了。//// main.cpp// Richard//// C原创 2016-08-08 18:09:25 · 145 阅读 · 0 评论 -
POJ 1066 Treasure
2次AC。只需注意相同端点不用算通过一面墙,最后加上1即可。//// main.cpp// Richard//// Created by 邵金杰 on 16/8/8.// Copyright © 2016年 邵金杰. All rights reserved.//#include#include#includeusing namespace std;#define原创 2016-08-08 20:17:13 · 257 阅读 · 0 评论