叉乘的坐标表示:

A(X1,Y1), B(X2, Y2), C(XC,YC), D(XD, YD);
AB = (X2-X1, Y2-Y1);
CD = (XD-XC, YD-YC);

向量AB,CD的叉乘为:
AB*CD= (X2-X1)*(YD-YC)-(Y2-Y1)*(X2-X1);
例如两条直线,ab,cd来判断是否相交则根据
ans = (cd叉乘ca)*(cd叉乘bd)
如果ans大于等于0则相交,否则不相交。

下面是判断代码:

 /*
Name:nyoj-1016-德莱联盟
Copyright:
Author:
Date: 2018/4/26 10:24:45
Description:
*/
#include <stdio.h>
#include <iostream>
using namespace std;
struct point{
double x,y;
};
int cross(point a,point b1,point b2){//求(b1-a) 和(b2-a) 的叉乘
double x1,y1,x2,y2;
x1=b1.x-a.x;
y1=b1.y-a.y;
x2=b2.x-a.x;
y2=b2.y-a.y;
return x1*y2-x2*y1;
}
int main()
{
int t;
cin>>t;
while(t--)
{
double ans1, ans2, ans3, ans4;
point A,B,C,D;
cin>>A.x>>A.y>>B.x>>B.y;//AB点的坐标
cin>>C.x>>C.y>>D.x>>D.y;//CD点的坐标
ans1=cross(A,C,D); //注意cross中向量的顺序,要相减的向量放在前面;向量CA和向量DA的叉乘
ans2=cross(B,C,D);
ans3=cross(C,A,B);
ans4=cross(D,A,B);
if(ans1*ans2< && ans3*ans4<){//判断点是否在同侧,如果AB在CD的同侧,不能相交 
printf("Interseetion\n");
} else {
printf("Not Interseetion\n");
} }
}

nyoj-1016-德莱联盟(向量叉乘判断线段相交)的更多相关文章

  1. POJ 3304 Segments (叉乘判断线段相交)

    <题目链接> 题目大意: 给出一些线段,判断是存在直线,使得该直线能够经过所有的线段.. 解题思路: 如果有存在这样的直线,过投影相交区域作直线的垂线,该垂线必定与每条线段相交,问题转化为 ...

  2. 还记得高中的向量吗?leetcode 335. Self Crossing(判断线段相交)

    传统解法 题目来自 leetcode 335. Self Crossing. 题意非常简单,有一个点,一开始位于 (0, 0) 位置,然后有规律地往上,左,下,右方向移动一定的距离,判断是否会相交(s ...

  3. Any Way You Slice It (向量旋转 以及 判断线段是否相交)(模板)

    http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11353 #include<iostream> # ...

  4. (线段判交的一些注意。。。)nyoj 1016-德莱联盟

    1016-德莱联盟 内存限制:64MB 时间限制:1000ms 特判: No通过数:9 提交数:9 难度:1 题目描述: 欢迎来到德莱联盟.... 德莱文... 德莱文在逃跑,卡兹克在追.... 我们 ...

  5. js判断向量叉点 并求出交点坐标

     代码如下可以直接运行,判断向量相交并求出交点坐标 <!DOCTYPE html> <html> <head> <meta http-equiv=" ...

  6. 【十天自制软渲染器】DAY 03:画一个三角形(向量叉乘算法 & 重心坐标算法)

    如果你喜欢我写的文章,可以把我的公众号设为星标 ,这样每次有更新就可以及时推送给你啦. 前面两天画了点和线,今天我们来画一个最简单也是最强大的面--三角形. 本文主要讲解三角形绘制算法的推导和思路(只 ...

  7. POJ 2318 TOYS (叉乘判断)

    <题目链接> 题目大意: 给出矩形4个点和n个挡板俩顶点的位置,这n个挡板将该矩形分成 n+1块区域,再给你m个点的坐标,然你输出每个区域内有几个点. 解题思路: 用叉乘即可简单判断点与直 ...

  8. matlab cross 3*1 向量叉乘

    一定是1*3  或者3*1 的向量才可以叉乘 A=[1 2 3] B=[4 5 6] cross(A,B) ans=[-3 6 -3] 解决机器人微分运动量之间的等价关系

  9. nyoj-952-最大四边形 (向量叉乘)

    题目链接 /* Name:nyoj-952-最大四边形 Copyright: Author: Date: 2018/4/27 10:46:24 Description: 枚举一条对角线,再选择一个 看 ...

随机推荐

  1. MAXIMUM SUBSEQUENCE SUM PROBLEM

    排除不合理的项(负值), 设定一个标杆sum, 往后扫描看是否有比sum好的情况. We should ensure the following conditions: 1. The result m ...

  2. Hexo 使用中搭建博客过程中遇到的坑

    本地执行hexo s 时报错: WARN No layout: index.html 原因:theme 没有下载下来,经查,theme文件夹下为空. 新建文章后,执行 hexo g 时报如下错误: ( ...

  3. ZOJ 3958 Cooking Competition 【水】

    题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3958 AC代码 #include <cstdio> ...

  4. HackerRank - lonely-integer 【水】

    题意 给出一系列数字,输出那个出现次数为奇数次的数字 思路 用MAP标记一下,在输入的时候判断一下 之前有没有输入过,如果有,就抹掉 最后剩下的那个 就是出现次数为奇数的 或者可以用 位运算 AC代码 ...

  5. Loadrunder之脚本篇——检查点

    VuGen判断脚本是否执行成功是根据服务器返回的状态来确定的,如果服务器返回的是HTTP状态为200 OK,那么VuGen就认为脚本正确地运行了,并且是运行通过的.而大多数系统出错时是不会返回错误页面 ...

  6. Java字段初始化规律:

    Java字段初始化规律: Java进行初始化的地方有两个,初始化块和构造函数,其中初始化块又分为静态初始化块和实例初始化块(以上程序为实例初始化块).静态初始化块是类中由static修饰的初始化块,实 ...

  7. linux 挂载 smb

    smbmount //192.168.1.210/homes/dm8168 /opt/fedora/ -o username=psubo,password=psubo_smb

  8. JAVA 写中文字符串到指定文件 中文乱码 问题解决

    之前试过下面代码里面的注释掉的 方法,都不行,后来想到了不如指定编码格式试试,果真可以了. String as= “中文字符”; //byte[] b = as.getBytes(); try{ Fi ...

  9. python-字符串应用

    例1:用python程序将DNA的一条链翻译出来s1=’ATTACGGC‘ rule={'A':'T','T':'A','C':'G','G':'C'} s1='ATTACGGC' s2=[rule[ ...

  10. Hadoop的RPC机制源码分析

    分析对象: hadoop版本:hadoop 0.20.203.0 必备技术点: 1. 动态代理(参考 :http://www.cnblogs.com/sh425/p/6893662.html )2. ...