• hdu 2108 (用叉积判断图形)


    #include<stdio.h>
    struct Node
    {
    int x,y;
    }s[10000];

    //两个向量叉积公式:
    //(x1,y1)X(x2,y2)=x1*y2-x2*y1
    //aXb = |a|*|b|*sin(c) 当C大于180°,叉积值小于0.
    int f(int i,int j,int k)
    {
    int a;
    a = (s[j].x - s[i].x ) * (s[k].y - s[i].y) - (s[k].x - s[i].x) * (s[j].y - s[i].y);
    if(a > 0) //大于0,两个向量见得夹角小于180;
    return 1;
    else
    return 0;
    }

    // x1 = s[j].x - s[i].x;
    // y1 = s[j].y - s[i].y;
    // x2 = s[k].x - s[i].x;
    // y2 = s[k].y - s[i].y;

    int main()


    {
    int n,m,j,i,k;
    int flag;

    while(~scanf("%d",&n))
    {
    flag = 0;
    if(n == 0)
    break;
    for(i = 0;i < n ;i ++)
    {
    scanf("%d %d",&s[i].x,&s[i].y );
    }
    if(n <= 3)
    {
    flag = 1;
    }
    else if(n > 3)
    {
    s[n] = s[0];
    s[n + 1] = s[1];

    for(i = 2;i < n + 2;i ++)
    {
    if(!f(i,i + 1,i + 2))
    {
    flag = 0;
    break;
    }
    }
    if(i == n)
    flag = 1;
    }
    if(flag)
    printf("convex ");
    else
    printf("concave ");
    }
    return 0;
    }

  • 相关阅读:
    底图的移动(setinterval 设置移动速度)
    Arrays的一点了解
    GestureDetector
    IO问题
    IO流
    Android动画
    Android中的Manager们
    Android对话框
    Android自定义View
    Android中关于Intent
  • 原文地址:https://www.cnblogs.com/ypacm/p/6005108.html
Copyright © 2020-2023  润新知