![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算几何学
少女終末旅行
雨だれの歌
展开
-
计算几何学 | 直线的正交/平行判定 | Parallel/Orthogonal | C/C++实现
问题描述对于直线s1、s2,当二者平行时输出2,正交时输出1.s1通过点p0、p1,s2通过点p2、p3。输入:第1行输入问题数q。接下来q行给出q个问题。各问题的点p0、p1、p2、p3的坐标按照以下格式给出:xp0x_{p0}xp0 yp0y_{p0}yp0 xp1x_{p1}xp1 yp1y_{p1}yp1 xp2x_{p2}xp2 yp2y_{p2}yp2 xp3x_{...原创 2019-02-15 10:34:44 · 2253 阅读 · 3 评论 -
计算几何学 | 线段相交问题 | 平面扫描 | Segment Intersections: Manhattan Geometry | C/C++实现 | 曼哈顿几何
问题描述现给出n条平行于x轴或y轴的线段,请输出其交点数。输入:第1行输入线段数n。接下来n行输入n条线段。每条线段按照下述格式给出:x1x_1x1 y1y_1y1 x2x_2x2 y2y_2y2上面分别为线段两端点的坐标。各输入数据均为整数。输出:输出交点的总数,占1行。限制:1 ≤ n ≤ 100000互相平行的2条或更多线段之间不存在重叠的点或线段交点数不超过1...原创 2019-02-17 22:42:30 · 1412 阅读 · 0 评论 -
计算几何学 | 凸包 | Convex Hull | C/C++实现
问题描述求二维平面上的点集合P的凸包(Convex Hull)。凸包是指包含点集合P中所有点的最小凸多边形。请列举出该多边形的边及顶点上的所有点。输入:第1行输入点的数量n。接下来n行输入第 i 个点pip_ipi的坐标,坐标以2个整数xix_ixi、yiy_iyi的形式给出。输出:第1行输出表示凸包的凸多边形的顶点数。接下来的几行输出凸多边形各个顶点的坐标(x, y)。输出时以凸...原创 2019-02-17 20:14:43 · 1692 阅读 · 0 评论 -
计算几何学 | 点的内包 | Polygon-Point Containment | C/C++实现
问题描述对于多边形g与点p,p位于g内时输出2,p位于g的边上时输出1,其余情况输出0。多边形g由其顶点的序列p1,p2,...,pnp_1,p_2,...,p_np1,p2,...,pn表示,相邻两点pip_ipi、pi+1p_{i+1}pi+1(1 ≤ i ≤ n-1)相连构成g的边。另外,点pnp_npn和p1p_1p1相连的线也是g的边。请注意,g不一定是凸多边形。输...原创 2019-02-17 17:17:29 · 944 阅读 · 1 评论 -
计算几何学 | 圆与圆的交点 | Cross Points of Circles | C/C++实现
问题描述求2个圆c1、c2的交点。输入:输入按照下述格式给出:c1x c1y c1rc2x c2y c2rc1x、c1y、c1r分别表示第1个圆的圆心x坐标、y坐标以及半径。同理,c2x、c2y、c2r表示第2个圆的坐标与半径。上述输入均为整数。输出:按下述规则输出交点p1、p2的坐标(x1, y1)、(x2, y2),相邻数据之间用空格隔开:只有1个交点时输出2个相同的坐标先...原创 2019-02-17 14:06:23 · 3478 阅读 · 1 评论 -
计算几何学 | 圆与直线的交点 | Cross Points of a Circle and a Line | C/C++实现
问题描述求圆c与直线lll的交点。输入:输入按照下述格式给出:cxcxcx cycycy rrrqqqLine1Line_1Line1Line2Line_2Line2…LineqLine_qLineq第1行输入圆心坐标cx,cy以及半径r。第2行输入问题数q。接下来q行按照下述格式输入q个直线LineiLine_iLinei作为问题。x1x_1x1 y1y_1y1...原创 2019-02-17 11:27:42 · 7699 阅读 · 6 评论 -
计算几何学 | 线段的交点 | Cross Point | C/C++实现
问题描述输出线段s1、s2交点的坐标。设s1的端点为p0、p1,s2的端点为p2、p3。输入:第1行输入问题数q。接下来q行给出q个问题。各问题线段s1、s2的坐标按照以下格式给出:xp0x_{p0}xp0 yp0y_{p0}yp0 xp1x_{p1}xp1 yp1y_{p1}yp1 xp2x_{p2}xp2 yp2y_{p2}yp2 xp3x_{p3}xp3 yp3y_{...原创 2019-02-16 23:39:35 · 3776 阅读 · 3 评论 -
计算几何学 | 判断线段相交 | Intersection | C/C++实现
问题描述对于线段s1、s2,如果相交则输出“1”,否则输出“0”。设s1的端点为p0、p1、,s2的端点为p2、p3。输入:第1行输入问题数q。接下来q行给出q个问题。各问题线段s1、s2的坐标按照以下格式给出:xp0x_{p0}xp0 yp0y_{p0}yp0 xp1x_{p1}xp1 yp1y_{p1}yp1 xp2x_{p2}xp2 yp2y_{p2}yp2 xp3x_...原创 2019-02-16 19:33:30 · 2644 阅读 · 1 评论 -
计算几何学 | 距离 | Distance | C/C++实现
问题描述输出线段s1、s2之间的距离。设s1的端点为p0、p1,s2的端点为p2、p3。输入:第1行输入问题数q。接下来q行给出q个问题。各问题线段s1、s2的坐标按照以下格式给出:xp0x_{p0}xp0 yp0y_{p0}yp0 xp1x_{p1}xp1 yp1y_{p1}yp1 xp2x_{p2}xp2 yp2y_{p2}yp2 xp3x_{p3}xp3 yp3y_{p...原创 2019-02-16 18:47:51 · 2056 阅读 · 0 评论 -
计算几何学 | 逆时针方向 | Counter-Clockwise | C/C++实现
问题描述对于三个点p0、p1、p2,请按照下列情况进行输出:p0、p1、p2成逆时针方向 COUNTER_CLOCKWISEp0、p1、p2成顺时针方向 CLOCKWISEp2、p0、p1依次排列在同一直线上 ONLINE_BACKp0、p1、p2依次排列在同一直线上 ONLINE_FRONTp2在线段p0p1上 ON_SEGMENT输入:xp0x_{p0}xp0 yp0y_{p...原创 2019-02-16 16:24:06 · 1626 阅读 · 0 评论 -
计算几何学 | 映像 | Reflection | C/C++实现
问题描述对于三个点p1、p2、p,设以通过p1、p2的直线为对称轴与点p成线对称的点为x,求点x的坐标(点p对于直线p1p2的映像)。输入:输入按照以下格式给出:xp1x_{p1}xp1 yp1y_{p1}yp1 xp2x_{p2}xp2 yp2y_{p2}yp2qqqxp0x_{p0}xp0 yp0y_{p0}yp0xp1x_{p1}xp1 yp1y_{p1}yp1...原创 2019-02-16 11:02:31 · 588 阅读 · 0 评论 -
计算几何学 | 投影 | Projection | C/C++实现
问题描述对于给定的三个点p1、p2、p,从点p向通过p1、p2的直线引一条垂线,求垂足x的坐标。(点p在直线p1p2上的投影)输入:输入按以下格式给出:xp1x_{p1}xp1 yp1y_{p1}yp1 xp2x_{p2}xp2 yp2y_{p2}yp2qqqxp0x_{p0}xp0 yp0y_{p0}yp0xp1x_{p1}xp1 yp1y_{p1}yp1…xp...原创 2019-02-15 22:42:34 · 2491 阅读 · 0 评论 -
计算几何学 | 几何对象的基本元素与表现 | C/C++实现
点与向量用程序求解几何问题,先要想办法用编程中的数据结构来表示几何对象。这里,使用向量就是解决办法之一。我们将既有大小又有方向的量称为向量。相对地,只有大小没有方向的量称为标量。为了用数据结构表示向量,将向量考虑成从原点O(0, 0)指向对象点P(x, y)的有向线段。向量落实在纸面上容易给人带来一种误解,觉得向量可以表示平面上的线段。但实际上,向量只具有大小和方向,而线段却要由两个端点确定...原创 2019-02-14 13:25:57 · 907 阅读 · 0 评论