向量叉乘意义&&NYOJ68三点顺序

6人阅读 评论(2) 收藏 举报
分类:

三点顺序

时间限制:1000 ms  |  内存限制:65535 KB
难度:3
描述

现在给你不共线的三个点A,B,C的坐标,它们一定能组成一个三角形,现在让你判断A,B,C是顺时针给出的还是逆时针给出的?

如:

图1:顺时针给出

图2:逆时针给出 

 

        <图1>                   <图2>

输入
每行是一组测试数据,有6个整数x1,y1,x2,y2,x3,y3分别表示A,B,C三个点的横纵坐标。(坐标值都在0到10000之间)
输入0 0 0 0 0 0表示输入结束
测试数据不超过10000组
输出
如果这三个点是顺时针给出的,请输出1,逆时针给出则输出0
样例输入
0 0 1 1 1 3
0 1 1 0 0 0
0 0 0 0 0 0
样例输出
0

1

就是用向量叉乘,向量叉乘本来呢就是算同时垂直两个向量的向量,计算公式是

c =  a×b = (a.y*b.z-b.y*a.z , b.x*a.z-a.x*b.z  , a.x*b.y-b.x*a.y)

几何意义呢就是计算面积,由这两个向量构成的平行四边形的面积。目前做了俩题用这个二维形式的叉乘,一个是关于三个点共线,另一个就是旋转角度的问题,第一个共线在我计算几何栏目第一篇里用了,然后,这个题,就是三角形旋转方向的。就利用了向量叉乘的第二点,二维向量叉乘结果大于0,就是由一个向量a正旋转到另一个向量b的角度小于180,小于零就是大于180.等于零就是共线嘛,就这样。发现正旋转忘解释了,正旋转不是说顺时针,或者是逆时针,正旋转是X轴旋转90度到Y轴的方向。

附代码:

#include <bits/stdc++.h>
using namespace std;
struct point {
	double x;
	double y;
};
int main()
{
#ifdef LOCAL
	freopen("D:/input.txt" , "r", stdin);
#endif
	int t;
	point a[4];
	while(1)
    {
    	for(int i=0;i<3;i++) 
    	cin>>a[i].x>>a[i].y;
    	int flag=0;
    	for(int i=0;i<3;i++)
    	if(a[i].x!=0||a[i].y!=0)
    	flag=1;
    	if(flag==0)
    	return 0;
    	point ab, ac;
    	ab.x=a[1].x-a[0].x;
    	ab.y=a[1].y-a[0].y;
    	ac.x=a[2].x-a[0].x;
    	ac.y=a[2].y-a[0].y;
    	if(ab.x*ac.y-ac.x*ab.y>0)
    	cout<<'0'<<endl;
    	else cout<<'1'<<endl;
    	
	}
    return 0;
}

查看评论

nyoj68 三点顺序 向量叉乘

三点顺序时间限制:1000 ms  |  内存限制:65535 KB难度:3描述现在给你不共线的三个点A,B,C的坐标,它们一定能组成一个三角形,现在让你判断A,B,C是顺时针给出的还是逆时针给出的?...
  • cao2219600
  • cao2219600
  • 2018-03-22 17:39:49
  • 602

nyist68 三点顺序(用叉乘判断向量的方向)

题目地址:http://acm.nyist.net/JudgeOnline/problem.php?pid=68 思路: p*q>0,则p在q的顺时针方向 p*q p*q=0,则p与q共线,但可能同...
  • qq_25605637
  • qq_25605637
  • 2016-02-15 14:40:11
  • 1674

向量的点乘与叉乘的几何意义

向量的点乘与叉乘的几何意义  很惭愧,作为一名学生,向量的最基本的知识全忘了,在最近做计算机图形学实验时,需要用到向量计算时,发现自己寸步难行。只好赶快百度”预习”一下。向量的点乘:a * b公式:a...
  • qq_27161673
  • qq_27161673
  • 2016-11-06 21:59:35
  • 27346

NYOJ68三点顺序

叉积面积小于0,逆时针,大于0,顺时针。 代码: #include #include int main() { int x1,y1,x2,y2,x3,y3; whi...
  • wsn564533648
  • wsn564533648
  • 2016-04-13 20:32:23
  • 131

向量的叉乘和点乘在Unity中的意义

向量的点乘  用来求向量之间的夹角或者用来判断向量是否在同一方向、以及在某一方向的投影。 判断如下: a·b>0   方向基本相同,夹角在0°到90°之间 a·b=0   正交 a·b ...
  • yguoelect
  • yguoelect
  • 2017-05-25 20:57:47
  • 1194

“&amp;”的意义

这个问题之前搞网站开发的时候,已经 遇到过。不过,今天看到居然又忘记了! 开来开始写博客是很重要的哦。 符号:“&amp;” 英文名字:ampersands 实际相当于符号:“&” 例子:(...
  • Kaiwii
  • Kaiwii
  • 2011-08-25 15:53:15
  • 925

nyoj—68—三点顺序

Address:http://acm.nyist.net/JudgeOnline/problem.php?pid=68 这个题目就是 三角形顺时针和逆时针的判定,参考地址:http://blog....
  • sjl_leaf
  • sjl_leaf
  • 2013-04-11 19:00:01
  • 1408

向量的点乘与叉乘的意义(用法)

1.u.v = cos@ .|u||v|1.1 如果u v都是单位向量 点乘表示夹角的余玄1.2 如果u 是单位向量 点乘表示向量v在单位向量u上的投影1.3 从视点到多边形任意一个顶点的矢量与多边形...
  • moon2008moon
  • moon2008moon
  • 2009-07-13 20:14:00
  • 7044

&amp;amp;什么意思?

&amp;amp;什么意思?  分享| 2012-10-06 20:22se7enrq | 浏览 57644 次 我有更好的答案 按默认排序 | 按时间排序 12条...
  • evilcry2012
  • evilcry2012
  • 2016-03-29 08:59:57
  • 1410

2D向量的叉积的几何意义

  以前使用2D向量的叉积的时候,知道它的几何意义表示以这两个向量为邻边的平行四边形的面积,但原因是什么,一直没有深究,今天又碰到了,就专门看了一下,不弄不知道,一弄吓一跳啊,真是知其然而不知其所以然...
  • zcainiao
  • zcainiao
  • 2008-07-24 12:52:00
  • 1881
    个人资料
    等级:
    访问量: 1万+
    积分: 1010
    排名: 5万+
    最新评论