zoukankan      html  css  js  c++  java
  • UVa11800

     题目中表述:no three of them are collinear

    没有三点共线,也就不会有两点重合。

    如何判断四个顶点的位置,是这题比较重要的一个点。

    部分代码:

            if ( SegmentProperIntersection(A, B, C, D) ) v[0] = A, v[1] = B, v[2] = C, v[3] = D, flag = 1;                                                                                                       
            else if ( SegmentProperIntersection(A, C, B, D) ) v[0] = A, v[1] = C, v[2] = B, v[3] = D, flag = 1;
            else if ( SegmentProperIntersection(A, D, B, C) ) v[0] = A, v[1] = D, v[2] = B, v[3] = C, flag = 1;

    通过判断线段是否规范正交,决定出四边行的四个顶点位置。

    根据确定的四个顶点位置,判断两对对边是否平行;

    if两个都不平行,就是普通四边行

    else if只有一个是平行的,就是梯形

    else {

      计算四个边,加入到set中;

      sz = set.size();

      if有一个角直角{

        if sz为1,就是正方形

        else 是矩形

      }

      else {

        if sz为1, 菱形

        if sz为2, 平行四边行

      }  

    }

  • 相关阅读:
    自然拼读
    windws蓝屏解决方案
    chrome
    ubuntu安装英伟达驱动
    ubuntu基础
    kvm(未完成2021-04-26)
    istio
    OpenSSH
    su 与 su -关系
    read命令/ declare/set
  • 原文地址:https://www.cnblogs.com/Accoral/p/3139285.html
Copyright © 2011-2022 走看看