求直线(线段)与直线(线段)的交点
来源:互联网 发布:织梦cms本地安装教程 编辑:程序博客网 时间:2024/05/01 23:58
知识储备:
叉乘:http://blog.csdn.net/nightmare_ak/article/details/77199940
定比分点法:http://blog.csdn.net/nightmare_ak/article/details/77917293
对于线段,只要先判断是否相交,就可以转化成直线求交点了
附模板:
#include<cstdio>#include<algorithm>#include<cmath>using namespace std;const int MAXN = 20 + 5;struct Pos{ double _x, _y; Pos(double x=0.0,double y=0.0):_x(x),_y(y){}}up[MAXN], down[MAXN];double Cross(Pos p1, Pos p2, Pos p0)//叉乘{ return (p1._x - p0._x)*(p2._y - p0._y) - (p2._x - p0._x)*(p1._y - p0._y);}bool isColide(Pos p1,Pos p2,Pos p3,Pos p4)//判断是否相交,直线p1p2与线段p3p4{ double tmp = Cross(p2, p3, p1)*Cross(p2, p4, p1); return tmp < 0.0 || fabs(tmp) < 1e-6;}Pos getPoint(Pos p1, Pos p2, Pos p3, Pos p4)//求出交点,直线(线段)p1p2与直线(线段)p3p4{//t=lamta/(1+lamta) double x1 = p1._x, y1 = p1._y; double x2 = p2._x, y2 = p2._y; double x3 = p3._x, y3 = p3._y; double x4 = p4._x, y4 = p4._y; double t = ((x2 - x1)*(y3 - y1) - (x3 - x1)*(y2 - y1)) / ((x2 - x1)*(y3 - y4) - (x3 - x4)*(y2 - y1)); return Pos(x3 + t*(x4 - x3), y3 + t*(y4 - y3));}int main(){ return 0;}
阅读全文
0 0
- 求直线(线段)与直线(线段)的交点
- poj1039 Pipe 线段与直线的交点
- POJ 2074(视线与障碍物+求直线和线段交点)
- POj 1039 直线与线段相交 直线与直线的交点
- HDU 2528 Area (求直线与线段的交点后求面积)
- 求两条直线(线段)的交点
- 求两条直线(线段)的交点
- 叉积--求两条直线(线段)的交点
- 求两条直线(线段)的交点
- 判断两条线段/直线相交,并求交点
- 判断两条线段/直线相交,并求交点
- 【C#】点到线段最短距离的那条直线与线段的交点
- poj 2074 Line of Sight(视线问题,求直线与线段的交点及判断相交)
- 点到线段直线的距离, 直线与直线的关系 直线与线段的关系
- 求空间直线与平面的交点
- 求直线与平面的交点
- 判断线段是否相交的函数和求直线交点的函数
- 判断线段与直线交点——noyj 管道问题
- [leetcode]解决Majority Element的一点小心得
- visual studio 2017搭建linux c++开发环境
- 1125. Chain the Ropes (25)
- 构造函数(构造器)
- 前行
- 求直线(线段)与直线(线段)的交点
- 淘宝网页价格爬虫
- HttpClient之接口测试
- HashMap和Hashtable的区别
- HDU 1079
- 文件的读写,io流
- 自定义两个shiro过滤器
- command: pybot.bat --argumentfile c:\users\keikei\appdata\local\temp\RIDEama2ym.d\argfile.txt --list
- 前端开发(HTML+CSS静态部分)