poj 1269
水题。判断两条直线位置关系。
考虑平行的情况,那么 四边形的面积会相等,重合的话,四边形的面积相等且为0.
除去这两种就一定有交点。
- #include <cstdio>
- #include <cmath>
- #define db double
- using namespace std;
- const db eps=1e-;
- const db pi = acos(-);
- int sign(db k){
- if (k>eps) return ; else if (k<-eps) return -; return ;
- }
- int cmp(db k1,db k2){return sign(k1-k2);}
- struct point{
- db x,y;
- point operator + (const point &k1) const{return (point){k1.x+x,k1.y+y};}
- point operator - (const point &k1) const{return (point){x-k1.x,y-k1.y};}
- point operator * (db k1) const{return (point){x*k1,y*k1};}
- point operator / (db k1) const{return (point){x/k1,y/k1};}
- };
- db dot(point k1,point k2){
- return k1.x*k2.x+k1.y*k2.y;
- }
- db cross(point k1,point k2){
- return k1.x*k2.y-k1.y*k2.x;
- }
- int inmid(db k1,db k2,db k3){return sign(k1-k3)*sign(k2-k3)<=;}
- int inmid(point k1,point k2,point k3){//k3在[k1,k2]
- return inmid(k1.x,k2.x,k3.x)&&inmid(k1.y,k2.y,k3.y);
- }
- point getLL (point k1,point k2,point k3,point k4){//两直线交点
- db w1=cross(k1-k3,k4-k3),w2=cross(k4-k3,k2-k3);
- return (k1*w2+k2*w1)/(w1+w2);
- }
- bool onS(point k1,point k2,point q){//q在[k1,k2]
- return inmid(k1,k2,q)&&sign(cross(k1-q,k2-k1))==;
- }
- int checkLL(point k1,point k2,point k3,point k4){//求两条直线是否 (平行||重合)
- return cmp(cross(k3-k1,k4-k1),cross(k3-k2,k4-k2))==;
- }
- struct Line{
- point p[];
- };
- db xl,yl,x2,y2;
- int n;
- point p[];
- int main(){
- scanf("%d",&n);
- printf("INTERSECTING LINES OUTPUT\n");
- while (n--){
- for(int i=;i<=;i++){
- scanf("%lf%lf",&p[i].x,&p[i].y);
- }
- if(checkLL(p[],p[],p[],p[])){
- if(sign(cross(p[]-p[],p[]-p[]))==){
- printf("LINE\n");
- } else{
- printf("NONE\n");
- }
- } else{
- point tmp = getLL(p[],p[],p[],p[]);
- printf("POINT %.2f %.2f\n",tmp.x,tmp.y);
- }
- }
- printf("END OF OUTPUT\n");
- }
poj 1269的更多相关文章
- POJ 1269 (直线求交)
Problem Intersecting Lines (POJ 1269) 题目大意 给定两条直线,问两条直线是否重合,是否平行,或求出交点. 解题分析 主要用叉积做,可以避免斜率被0除的情况. 求交 ...
- 直线相交 POJ 1269
// 直线相交 POJ 1269 // #include <bits/stdc++.h> #include <iostream> #include <cstdio> ...
- 判断两条直线的位置关系 POJ 1269 Intersecting Lines
两条直线可能有三种关系:1.共线 2.平行(不包括共线) 3.相交. 那给定两条直线怎么判断他们的位置关系呢.还是用到向量的叉积 例题:POJ 1269 题意:这道题是给定四个点p1, ...
- poj 1269 线段与线段相交
Intersecting Lines Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 13605 Accepted: 60 ...
- POJ 1269 Intersecting Lines (判断直线位置关系)
题目链接:POJ 1269 Problem Description We all know that a pair of distinct points on a plane defines a li ...
- POJ 1269 Intersecting Lines(判断两直线位置关系)
题目传送门:POJ 1269 Intersecting Lines Description We all know that a pair of distinct points on a plane ...
- poj 1269 Intersecting Lines
题目链接:http://poj.org/problem?id=1269 题目大意:给出四个点的坐标x1,y1,x2,y2,x3,y3,x4,y4,前两个形成一条直线,后两个坐标形成一条直线.然后问你是 ...
- poj 1269 水题
题目链接:http://poj.org/problem?id=1269 #include<cstdio> #include<cstring> #include<cmath ...
- ●POJ 1269 Intersecting Lines
题链: http://poj.org/problem?id=1269 题解: 计算几何,直线交点 模板题,试了一下直线的向量参数方程求交点的方法. (方法详见<算法竞赛入门经典——训练指南> ...
- POJ 1269 - Intersecting Lines - [平面几何模板题]
题目链接:http://poj.org/problem?id=1269 Time Limit: 1000MS Memory Limit: 10000K Description We all know ...
随机推荐
- python测试开发django-52.xadmin添加自定义的javascript(get_media)
前言 我想使用xadmin在列表页每一行元素添加一个按钮,当点击这个按钮的时候,能发个请求出去,后台执行相关功能.于是想到添加自定义的javascript脚本能实现. 在/stackoverflow上 ...
- springboot RestTemplate httpclient
RestTemplate是spring支持的一个请求http rest服务的模板对象,性质上有点像jdbcTemplate RestTemplate底层还是使用的httpclient(org.apac ...
- 【Google设计冲刺】一种适合于创新小组的协作方式
传统的产品闭环是1.产品策划-2.研发-3.上线-4.等待市场反馈,4个步骤.对于一个创新项目来说,试错成本过高,等待周期过长[注释1].那么,有没有一种适合创新项目的协作方式呢?谷歌风投杰克·纳普发 ...
- protobuf 动态创建
https://www.ibm.com/developerworks/cn/linux/l-cn-gpb/index.html https://originlee.com/2015/03/14/ana ...
- PHP 实现自动加载
自动载入主要是省去了一个个类去 include 的繁琐,在 new 时动态的去检查并 include 相应的 class 文件. 先上代码: //index.php <?php class Cl ...
- 构建自己的 Smart Life 私有云(一)-> 破解涂鸦智能插座
博客搬迁至https://blog.wangjiegulu.com RSS订阅:https://blog.wangjiegulu.com/feed.xml 原文链接:https://blog.wang ...
- Python之多线程和多进程
一.多线程 1.顺序执行单个线程,注意要顺序执行的话,需要用join. #coding=utf-8 from threading import Thread import time def my_co ...
- Scala 隐式(implicit)详解
文章正文 通过隐式转换,程序员可以在编写Scala程序时故意漏掉一些信息,让编译器去尝试在编译期间自动推导出这些信息来,这种特性可以极大的减少代码量,忽略那些冗长,过于细节的代码. 1.Spark 中 ...
- mac 下 通过 brew 安装 MariaDB
其实在两年多前,我就推荐大家使用MariaDB了,其实真的很好用,性能高,也可以完全替代mysql 主要是这oracle实在是太**了,java都收费了,mysql迟早的事... 安装MariaDB之 ...
- mongodb配置文件解说(转载)
启动方式 ./bin/mongod -f mongodb.conf 会看到 about to fork child process, waiting until server is ready for ...