nyoj-68-三点顺序-计算几何
2013-07-11 09:28
483 查看
三点顺序
时间限制:1000 ms | 内存限制:65535 KB难度:3
描述
现在给你不共线的三个点A,B,C的坐标,它们一定能组成一个三角形,现在让你判断A,B,C是顺时针给出的还是逆时针给出的?
如:
图1:顺时针给出
图2:逆时针给出
#include<stdio.h> int main() { int x1,y1,x2,y2,x3,y3; while(~scanf("%d%d%d%d%d%d",&x1,&y1,&x2,&y2,&x3,&y3)&&(x1+y1+x2+y2+x3+y3)) { if((x2-x1)*(y3-y1)-(x3-x1)*(y2-y1)>0) printf("0\n"); //逆时针 else printf("1\n"); //顺时针 } return 0; }
View Code
利用矢量叉积判断是逆时针还是顺时针。
设A(x1,y1),B(x2,y2),C(x3,y3),则三角形两边的矢量分别是:
AB=(x2-x1,y2-y1), AC=(x3-x1,y3-y1)
则AB和AC的叉积为:(2*2的行列式)
|x2-x1, y2-y1|
|x3-x1, y3-y1|
值为:(x2-x1)*(y3-y1) - (y2-y1)*(x3-x1)
利用右手法则进行判断:
如果ABxAC>0,则三角形ABC是逆时针的;
如果ABxAC<0,则三角形ABC是顺时针的;
如果ABxAC=0,则说明三点共线。
相关文章推荐
- nyoj 68:三点顺序(计算几何)
- 三点顺序_nyoj_68(计算几何).java
- 三点顺序_nyoj_68(计算几何).java
- nyoj 68三点顺序 【几何】
- nyoj 三点顺序 68 (数学几何)
- nyis oj 68 三点顺序 (计算几何基础)
- nyis oj 68 三点顺序 (计算几何基础)
- NYOJ--68三点顺序
- nyoj68 三点顺序
- nyoj-68--三点顺序
- nyoj--68--三点顺序(数学)
- nyoj--68--三点顺序(数学)
- NYOJ 68 三点顺序
- nyoj68三点顺序
- NYOJ 68:三点顺序
- nyoj68三点顺序
- nyoj 68-三点顺序
- 计算几何初步-三点顺序
- NYOJ:68-三点顺序
- NYOJ68三点顺序