亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 計算幾何學庫函數.txt

?? 解決排列組合問題的通用算法,自然數得拆分,求最大公約數的算法
?? TXT
字號:

/********************************************* *                                          *
*        計算幾何學庫函數                  *
*                                          *
*                  copyright starfish      *
*                          2000/10/24      *
*                                          *
\*********************************************/

#include <stdlib.h>


#define infinity 1e20
#define EP 1e-10

struct TPoint {
    float x,y;
    };

struct TLineSeg {
    TPoint a,b;
    };



//求平面上兩點之間的距離
float distance(TPoint p1,TPoint p2)
{
    return(sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)));  
}


/******************************************************** *                                                      *
*  返回(P1-P0)*(P2-P0)的叉積。                        *
*  若結果為正,則<P0,P1>在<P0,P2>的順時針方向;        *
*  若為0則<P0,P1><P0,P2>共線;                        *
*  若為負則<P0,P1>在<P0,P2>的在逆時針方向;            *
*  可以根據這個函數確定兩條線段在交點處的轉向,        *
*  比如確定p0p1和p1p2在p1處是左轉還是右轉,只要求      *
*  (p2-p0)*(p1-p0),若<0則左轉,>0則右轉,=0則共線    *
*                                                      *
\********************************************************/

float multiply(TPoint p1,TPoint p2,TPoint p0)
{
    return((p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y));    
}



//確定兩條線段是否相交
int intersect(TLineSeg u,TLineSeg v)
{
    return( (max(u.a.x,u.b.x)>=min(v.a.x,v.b.x))&&
            (max(v.a.x,v.b.x)>=min(u.a.x,u.b.x))&&
            (max(u.a.y,u.b.y)>=min(v.a.y,v.b.y))&&
            (max(v.a.y,v.b.y)>=min(u.a.y,u.b.y))&&
            (multiply(v.a,u.b,u.a)*multiply(u.b,v.b,u.a)>=0)&&
            (multiply(u.a,v.b,v.a)*multiply(v.b,u.b,v.a)>=0));
}

//判斷點p是否在線段l上
int online(TLineSeg l,TPoint p)
{
    return( (multiply(l.b,p,l.a)==0)&&( ((p.x-l.a.x)*(p.x-l.b.x)<0 )||( (p.y-l.a.y)*(p.y-l.b.y)<0 )) );
}


//判斷兩個點是否相等
int Euqal_Point(TPoint p1,TPoint p2)
{
return((abs(p1.x-p2.x)<EP)&&(abs(p1.y-p2.y)<EP));
}

//一種線段相交判斷函數,當且僅當u,v相交并且交點不是u,v的端點時函數為true;
int intersect_A(TLineSeg u,TLineSeg v)
{
    return((intersect(u,v))&&
          (!Euqal_Point(u.a,v.a))&&
          (!Euqal_Point(u.a,v.b))&&
          (!Euqal_Point(u.b,v.a))&&
          (!Euqal_Point(u.b,v.b)));
}


/************************************************* *                                              *
*      判斷點q是否在多邊形Polygon內,          *
*      其中多邊形是任意的凸或凹多邊形,        *
*      Polygon中存放多邊形的逆時針頂點序列      *
*                                              *
\*************************************************/

int InsidePolygon(int vcount,TPoint Polygon[],TPoint q)
{
    int c=0,i,n;
    TLineSeg l1,l2;
        
    l1.a=q;
    l1.b=q;
    l1.b.x=infinity;
    n=vcount;
    for (i=0;i<vcount;i++)
    {
        l2.a=Polygon[i];
        l2.b=Polygon[(i+1)%n];
        if (  (intersect_A(l1,l2))||
              (
                (online(l1,Polygon[(i+1)%n]))&&
                (
                (!online(l1,Polygon[(i+2)%n]))&&
                (multiply(Polygon[i],Polygon[(i+1)%n],l1.a)*multiply(Polygon[(i+1)%n],Polygon[(i+2)%n],l1.a)>0)
                ||
                (online(l1,Polygon[(i+2)%n]))&&
                (multiply(Polygon[i],Polygon[(i+2)%n],l1.a)*multiply(Polygon[(i+2)%n],Polygon[(i+3)%n],l1.a)>0)        
                )
              )
          ) c++;
        }
        return(c%2!=0);
}


/******************************************** *                                          *
*      計算多邊形的面積                    *
*                                          *
*    要求按照逆時針方向輸入多邊形頂點    *
*    可以是凸多邊形或凹多邊形            *
*                                          *
\********************************************/

float area_of_polygon(int vcount,float x[],float y[])
{
  int i;
  float s;
  if (vcount<3) return 0;
  s=y[0]*(x[vcount-1]-x[1]);
  for (i=1;i<vcount;i++)
    s+=y[i]*(x[(i-1)]-x[(i+1)%vcount]);
  return s/2;
  }


/*====================================================================================
  尋找凸包 graham 掃描法

  PointSet為輸入的點集;
  ch為輸出的凸包上的點集,按照逆時針方向排列;
  n為PointSet中的點的數目
  len為輸出的凸包上的點的個數;

      設下一個掃描的點PointSet[i]=P2,當前棧頂的兩個點ch[top]=P1,ch[top-1]=P0,
    如果P1P2相對于P0P1在點P1向左旋轉(共線也不行),則P0,P1一定是凸包上的點;
    否則P1一定不是凸包上的點,應該將其出棧。
    比如下面左圖中點1就一定是凸包上的點,右圖中點1就一定不是凸包上的點,因為
    可以連接點0,2構成凸包的邊
          2
          |
          |                _____2
          1              1
          /              /
    ____0/          ____0/

====================================================================================*/

void Graham_scan(TPoint PointSet[],TPoint ch[],int n,int &len)
{
    int i,j,k=0,top=2;
    TPoint tmp;
    
    //選取PointSet中y坐標最小的點PointSet[k],如果這樣的點右多個,則取最左邊的一個
    for(i=1;i<n;i++)
        if ((PointSet[i].y<PointSet[k].y)||((PointSet[i].y==PointSet[k].y)&&(PointSet[i].x<PointSet[k].x)))
        k=i;
    tmp=PointSet[0];
    PointSet[0]=PointSet[k];
    PointSet[k]=tmp; //現在PointSet中y坐標最小的點在PointSet[0]
    for (i=1;i<n-1;i++) //對頂點按照相對PointSet[0]的極角從小到大進行排序,極角相同的按照距離PointSet[0]從近到遠進行排序
        {  k=i;
            for (j=i+1;j<n;j++)
                if ( (multiply(PointSet[j],PointSet[k],PointSet[0])>0)
                    ||
                    ( (multiply(PointSet[j],PointSet[k],PointSet[0])==0)
                      &&(distance(PointSet[0],PointSet[j])<distance(PointSet[0],PointSet[k])) )
                  ) k=j;
            tmp=PointSet[i];
            PointSet[i]=PointSet[k];
            PointSet[k]=tmp;
        }
    ch[0]=PointSet[0];
    ch[1]=PointSet[1];
    ch[2]=PointSet[2];  
    for (i=3;i<n;i++)
        {
            while (multiply(PointSet[i],ch[top],ch[top-1])>=0) top--;
            ch[++top]=PointSet[i];
            }
    len=top+1;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品视频一区二区三区八戒| 欧美视频日韩视频| av一二三不卡影片| 91精品福利在线一区二区三区 | 老司机精品视频在线| www.日韩av| 欧美大胆一级视频| 午夜精品在线看| 91伊人久久大香线蕉| 久久九九全国免费| 久久精品72免费观看| 欧美高清视频在线高清观看mv色露露十八| 久久综合九色综合97_久久久| 日韩激情视频网站| 91福利小视频| 亚洲精品亚洲人成人网| 成人精品鲁一区一区二区| 久久中文娱乐网| 久久97超碰色| 日韩一卡二卡三卡| 青青草原综合久久大伊人精品 | 国产乱码一区二区三区| 欧美日韩一区二区在线观看视频| 亚洲欧美日韩成人高清在线一区| 风间由美一区二区三区在线观看 | 另类中文字幕网| 欧美最新大片在线看| 亚洲蜜桃精久久久久久久| eeuss影院一区二区三区| 国产精品少妇自拍| 白白色亚洲国产精品| 欧美激情综合五月色丁香小说| 国产精品自拍三区| 久久久99久久| 成人免费毛片a| 亚洲欧美另类小说| 欧美亚洲国产bt| 日韩专区在线视频| 欧美成人女星排名| 国产精品夜夜嗨| 成人免费在线播放视频| 91官网在线免费观看| 亚洲高清免费在线| 日韩亚洲欧美在线观看| 国产麻豆一精品一av一免费| 欧美国产欧美综合| 色综合久久久久综合| 婷婷夜色潮精品综合在线| 日韩一区二区三区精品视频| 国产伦理精品不卡| 亚洲视频网在线直播| 欧美三级视频在线观看| 看片的网站亚洲| 国产日韩成人精品| 在线视频观看一区| 日韩国产在线观看| 欧美国产视频在线| 欧美三级在线视频| 久久精品久久综合| 中文字幕视频一区二区三区久| 欧美日韩国产三级| 国产精品996| 亚洲aⅴ怡春院| 久久免费国产精品| 色噜噜狠狠色综合欧洲selulu| 人人狠狠综合久久亚洲| 欧美国产激情一区二区三区蜜月| 在线观看国产一区二区| 国产在线日韩欧美| 亚洲已满18点击进入久久| 精品久久久网站| 在线看日韩精品电影| 国产一区二区三区四区五区美女 | 国产福利一区二区三区视频在线 | 欧美日韩一区不卡| 九九九久久久精品| 亚洲欧美一区二区三区久本道91 | 欧美亚洲一区二区三区四区| 美日韩一区二区| 亚洲品质自拍视频网站| 精品久久久久久久久久久久包黑料| 成人性生交大片免费看在线播放 | 久久精品欧美一区二区三区麻豆| 色综合久久久久久久久久久| 久久69国产一区二区蜜臀| 亚洲欧美福利一区二区| 久久香蕉国产线看观看99| 欧美三级中文字幕在线观看| eeuss国产一区二区三区| 精品一区二区久久| 天天射综合影视| 亚洲欧美激情一区二区| 国产亚洲精品久| 欧美成人精品1314www| 欧美视频一区二区在线观看| jiyouzz国产精品久久| 国产经典欧美精品| 美女视频第一区二区三区免费观看网站 | 欧美xxxxxxxx| 欧美日韩国产在线播放网站| 色综合欧美在线| av在线一区二区三区| 国产ts人妖一区二区| 精品亚洲成a人| 麻豆精品一二三| 美女视频网站黄色亚洲| 青青草一区二区三区| 日韩高清不卡一区| 亚洲成人福利片| 亚洲亚洲人成综合网络| 一区二区三区日韩在线观看| 亚洲天堂久久久久久久| 亚洲日本一区二区三区| 中文字幕在线视频一区| 国产视频一区二区在线观看| 久久久久久一二三区| 久久久精品影视| 久久精品一区二区| 亚洲国产精品二十页| 亚洲视频资源在线| 一区二区三区四区在线免费观看 | 日韩精品色哟哟| 天堂在线亚洲视频| 毛片一区二区三区| 国产在线精品一区二区不卡了| 国产一区视频网站| 成人精品国产福利| 在线免费视频一区二区| 88在线观看91蜜桃国自产| 欧美电影精品一区二区| 久久久国产精品午夜一区ai换脸| 国产精品网站在线| 亚洲激情图片一区| 男男成人高潮片免费网站| 韩国午夜理伦三级不卡影院| 国产成人av电影在线| 色偷偷久久一区二区三区| 欧美精品粉嫩高潮一区二区| 精品三级av在线| 中文字幕在线免费不卡| 亚洲第一久久影院| 国内成人免费视频| 色综合久久天天| 精品国产91乱码一区二区三区| 亚洲欧洲日本在线| 日韩国产欧美在线观看| 国产电影一区二区三区| 欧美在线观看一区| 久久综合色天天久久综合图片| 最新热久久免费视频| 日本亚洲三级在线| 99精品热视频| 日韩一区二区免费电影| 国产精品妹子av| 日本成人超碰在线观看| 99国产麻豆精品| 精品播放一区二区| 一区二区三区**美女毛片| 国产一区二区三区精品欧美日韩一区二区三区 | 成人黄色免费短视频| 欧美日韩精品二区第二页| 久久久久亚洲蜜桃| 日本欧美加勒比视频| jiyouzz国产精品久久| 日韩精品中午字幕| 夜夜操天天操亚洲| 成人一区二区视频| 精品粉嫩aⅴ一区二区三区四区| 一区二区三区在线免费视频| 国产精品综合久久| 555www色欧美视频| 亚洲免费视频成人| 国产91精品免费| 日韩精品最新网址| 亚洲国产aⅴ天堂久久| www.亚洲在线| 国产欧美1区2区3区| 久久国产夜色精品鲁鲁99| 精品视频色一区| 伊人色综合久久天天| 国产不卡视频一区| 久久先锋影音av| 蜜臀久久久99精品久久久久久| 欧美性一二三区| 国产精品国产三级国产有无不卡 | 亚洲精品一区二区三区蜜桃下载| 亚洲精品视频在线看| av高清久久久| 国产精品激情偷乱一区二区∴| 久久精品国产一区二区| 日韩一区二区三区视频在线观看| 亚洲成人三级小说| 欧美性大战久久久久久久| 一区二区三区在线看| 欧美一级二级在线观看| 热久久一区二区| 日韩精品自拍偷拍| 国产制服丝袜一区| 国产丝袜在线精品| 成人少妇影院yyyy|