青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-72  評論-126  文章-0  trackbacks-0
http://acm.hdu.edu.cn/showproblem.php?pid=1086

//判斷兩直線是否相交
#include<stdio.h>
#define eps 1e-8
#define zero(x) (((x)>0?(x):-(x))<eps)
struct point {
    
double x,y;
};
struct line {
    point a,b;
}l[
101];
double xmult(point p1,point p2,point p0){
    
return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);
}
int dots_inline(point p1,point p2,point p3){
    
return zero(xmult(p1,p2,p3));
}
int same_side(point p1,point p2,line l){
    
return xmult(l.a,p1,l.b)*xmult(l.a,p2,l.b)>eps;
}
int dot_online_in(point p,line l){
    
return zero(xmult(p,l.a,l.b))&&(l.a.x-p.x)*(l.b.x-p.x)<eps&&(l.a.y-p.y)*(l.b.y-p.y)<eps;
}
int intersect_in(line u,line v){
    
if (!dots_inline(u.a,u.b,v.a)||!dots_inline(u.a,u.b,v.b))
        
return !same_side(u.a,u.b,v)&&!same_side(v.a,v.b,u);
    
return dot_online_in(u.a,v)||dot_online_in(u.b,v)||dot_online_in(v.a,u)||dot_online_in(v.b,u);
}
int main()
{
    
int n,i,j;
    
int cnt;
    
while(scanf("%d",&n),n)
    {
        
for(i=0;i<n;i++) {
            scanf(
"%lf%lf%lf%lf",&l[i].a.x,&l[i].a.y,&l[i].b.x,&l[i].b.y);
        }
        cnt 
= 0;
        
for(i=0;i<n;i++) {
            
for(j=i+1;j<n;j++) {
                cnt 
+= intersect_in(l[i],l[j]);
            }
        }
        printf(
"%d\n",cnt);
    }
    
return 0;
}


http://acm.hdu.edu.cn/showproblem.php?pid=1115
求多邊形重心
#include<stdio.h>
#include
<math.h>
#define eps 1e-8
struct point{
    
double x,y;
}p[
1000001];
struct line{point a,b;};

double xmult(point p1,point p2,point p0){
    
return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);
}
point intersection(line u,line v){
    point ret
=u.a;
    
double t=((u.a.x-v.a.x)*(v.a.y-v.b.y)-(u.a.y-v.a.y)*(v.a.x-v.b.x))
        
/((u.a.x-u.b.x)*(v.a.y-v.b.y)-(u.a.y-u.b.y)*(v.a.x-v.b.x));
    ret.x
+=(u.b.x-u.a.x)*t;
    ret.y
+=(u.b.y-u.a.y)*t;
    
return ret;
}
point barycenter(point a,point b,point c){
    line u,v;
    u.a.x
=(a.x+b.x)/2;
    u.a.y
=(a.y+b.y)/2;
    u.b
=c;
    v.a.x
=(a.x+c.x)/2;
    v.a.y
=(a.y+c.y)/2;
    v.b
=b;
    
return intersection(u,v);
}
point barycenter(
int n,point* p){
    point ret,t;
    
double t1=0,t2;
    
int i;
    ret.x
=ret.y=0;
    
for (i=1;i<n-1;i++)
        
if (fabs(t2=xmult(p[0],p[i],p[i+1]))>eps){
            t
=barycenter(p[0],p[i],p[i+1]);
            ret.x
+=t.x*t2;
            ret.y
+=t.y*t2;
            t1
+=t2;
        }
        
if (fabs(t1)>eps)
            ret.x
/=t1,ret.y/=t1;
        
return ret;
}

int main()
{
    
int T,i,n;
    scanf(
"%d",&T);
    
while(T--)
    {
        scanf(
"%d",&n);
        
for(i=0;i<n;i++) {
            scanf(
"%lf%lf",&p[i].x,&p[i].y);
        }
        point x 
= barycenter(n,p);
        x.x 
+= eps;
        x.y 
+= eps;
        printf(
"%.2lf %.2lf\n",x.x,x.y);
    }
}


http://acm.hdu.edu.cn/showproblem.php?pid=2671
//點(diǎn)關(guān)于直線的對稱點(diǎn)

#include
<stdio.h>
#include
<math.h>
#define eps 1e-8
struct point{
    
double x,y;
};
struct line{
    point a,b;
};


double dis(point p1,point p2) {
    
return sqrt( (p1.x-p2.x)*(p1.x-p2.x) + (p1.y-p2.y)*(p1.y-p2.y) );
}
double xmult(point p1,point p2,point p0){
    
return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);
}
int same_side(point p1,point p2,line l){
    
return xmult(l.a,p1,l.b)*xmult(l.a,p2,l.b)>eps;
}
point intersection(point u1,point u2,point v1,point v2){
    point ret
=u1;
    
double t=((u1.x-v1.x)*(v1.y-v2.y)-(u1.y-v1.y)*(v1.x-v2.x))
            
/((u1.x-u2.x)*(v1.y-v2.y)-(u1.y-u2.y)*(v1.x-v2.x));
    ret.x
+=(u2.x-u1.x)*t;
    ret.y
+=(u2.y-u1.y)*t;
    
return ret;
}
point ptoline(point p,line l){
    point t
=p;
    t.x
+=l.a.y-l.b.y;
    t.y
+=l.b.x-l.a.x;
    
return intersection(p,t,l.a,l.b);
}


int main()
{
    
int T;
    
double k;
    point a,b,c,d;
    line cd;
    scanf(
"%d",&T);
    
while(T--)
    {
        scanf(
"%lf",&k);
        scanf(
"%lf%lf%lf%lf%lf%lf",&a.x,&a.y,&b.x,&b.y,&c.x,&c.y);
        d.x 
= c.x + 1;
        d.y 
= c.y + 1*k;
        cd.a 
= c;
        cd.b 
= d;
        
if(same_side(a,b,cd)) {
            point e 
= ptoline(a,cd);
            a.x 
= a.x + (e.x-a.x)*2;
            a.y 
= a.y + (e.y-a.y)*2;
        }
        printf(
"%.2lf\n",dis(a,b));
    }
}

http://acm.hdu.edu.cn/showproblem.php?pid=1700

//一個(gè)點(diǎn)繞另外一個(gè)點(diǎn)旋轉(zhuǎn)并擴(kuò)大
#include<stdio.h>
#include 
<math.h>
struct point{double x,y;};

point rotate(point v,point p,
double angle,double scale){
    point ret
=p;
    v.x
-=p.x,v.y-=p.y;
    p.x
=scale*cos(angle);
    p.y
=scale*sin(angle);
    ret.x
+=v.x*p.x-v.y*p.y;
    ret.y
+=v.x*p.y+v.y*p.x;
    
return ret;
}
int main()
{
    
int T;
    point a,o,b,c;
    o.x 
= 0;
    o.y 
= 0;
    scanf(
"%d",&T);
    
while(T--)
    {
        scanf(
"%lf%lf",&a.x,&a.y);
        b 
= rotate(a,o,120.0/180*acos(-1.0),1);
        c 
= rotate(a,o,-120.0/180*acos(-1.0),1);
        
if(b.y<c.y || b.y==c.y && b.x<c.x)
            printf(
"%.3lf %.3lf %.3lf %.3lf\n",b.x,b.y,c.x,c.y);
        
else
            printf(
"%.3lf %.3lf %.3lf %.3lf\n",c.x,c.y,b.x,b.y);
    }
    
return 0;
}


http://acm.hdu.edu.cn/showproblem.php?pid=1756
//判點(diǎn)在任意多邊形內(nèi),頂點(diǎn)按順時(shí)針或逆時(shí)針給出
//on_edge表示點(diǎn)在多邊形邊上時(shí)的返回值,offset為多邊形坐標(biāo)上限

#include 
<stdio.h>
#include 
<stdlib.h>
#include 
<math.h>
#define offset 1000
#define eps 1e-8
#define zero(x) (((x)>0?(x):-(x))<eps)
#define _sign(x) ((x)>eps?1:((x)<-eps?2:0))
struct point{double x,y;};
double xmult(point p1,point p2,point p0){
    
return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);
}
int inside_polygon(point q,int n,point* p,int on_edge=1){
    point q2;
    
int i=0,count;
    
while (i<n)
        
for (count=i=0,q2.x=rand()+offset,q2.y=rand()+offset;i<n;i++)
            
if (zero(xmult(q,p[i],p[(i+1)%n]))&&(p[i].x-q.x)*(p[(i+1)%n].x-q.x)<eps&&(p[i].y-q.y)*(p[(i+1)%n].y-q.y)<eps)
                
return on_edge;
            
else if (zero(xmult(q,q2,p[i])))
                
break;
            
else if (xmult(q,p[i],q2)*xmult(q,p[(i+1)%n],q2)<-eps&&xmult(p[i],q,p[(i+1)%n])*xmult(p[i],q2,p[(i+1)%n])<-eps)
                count
++;
            
return count&1;
}
int main()
{
    
int n,m,i;
    point p[
101],q;
    
while(scanf("%d",&n)==1)
    {
        
for(i=0;i<n;i++)
            scanf(
"%lf%lf",&p[i].x,&p[i].y);
        scanf(
"%d",&m);
        
while(m--)
        {
            scanf(
"%lf%lf",&q.x,&q.y);
            puts(inside_polygon(q,n,p)
?"Yes":"No");
        }
    }
    
return 0;
}

內(nèi)容及代碼日后補(bǔ)充整理。。。。。
posted on 2009-03-11 13:57 shǎ崽 閱讀(1025) 評論(4)  編輯 收藏 引用

評論:
# re: 一些計(jì)算幾何基礎(chǔ)公式 2009-03-11 17:51 | fdar
期待  回復(fù)  更多評論
  
# re: 一些計(jì)算幾何基礎(chǔ)公式 2009-03-12 13:29 | AekdyCoin
Orz
ym  回復(fù)  更多評論
  
# re: 一些計(jì)算幾何基礎(chǔ)公式 2009-03-12 15:29 | fdar
Orz是啥意思。。  回復(fù)  更多評論
  
# re: 一些計(jì)算幾何基礎(chǔ)公式 2009-03-12 15:41 | shǎ崽
本來整理自己看的
幾何知識(shí)一點(diǎn)都不會(huì)
。。。唉
被大牛們嘲笑了  回復(fù)  更多評論
  

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            91久久精品国产91久久| 国产精品欧美日韩一区二区| 欧美日韩国产在线播放网站| 久热国产精品| 国产精品久久久久久久久搜平片 | 亚洲欧洲在线一区| 国产精品久久久一区麻豆最新章节| 亚洲日韩欧美一区二区在线| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲午夜一区二区| 亚洲精品免费一二三区| 亚洲欧美精品suv| 国产欧美日韩亚洲一区二区三区| 午夜在线成人av| 亚洲精品日产精品乱码不卡| 午夜在线不卡| 国产精品色婷婷| 欧美国产日韩在线| 日韩午夜中文字幕| 久久免费视频在线| 亚洲人成人99网站| 国产欧美日韩综合一区在线播放| 亚洲日本中文字幕区| 亚洲欧洲一二三| 卡通动漫国产精品| 在线观看视频一区二区欧美日韩| 国产精品爽爽ⅴa在线观看| 免播放器亚洲一区| 午夜电影亚洲| 影音先锋在线一区| 国产精品综合不卡av| 国产免费亚洲高清| 国产自产精品| 亚洲精选久久| 亚洲精品影院在线观看| 精品99视频| 亚洲一区综合| 久久久亚洲高清| 91久久国产精品91久久性色| 日韩一区二区精品| 免费成人av在线| 欧美a级片一区| 欧美激情亚洲精品| 久久精品亚洲乱码伦伦中文| 久久大逼视频| 欧美精品观看| 红杏aⅴ成人免费视频| 夜夜嗨av一区二区三区四区 | 欧美成人午夜免费视在线看片| 欧美影院一区| 久久综合九色99| 国产精品久久久久一区二区三区共 | 亚洲激情偷拍| 欧美一区二区三区久久精品| 性刺激综合网| 亚洲小少妇裸体bbw| 午夜精品国产精品大乳美女| 久久久久国产精品麻豆ai换脸| 久久国产66| 亚洲免费观看高清在线观看| 国产精品国产自产拍高清av王其 | 欧美日韩国产精品一区| 激情久久婷婷| 午夜欧美电影在线观看| 玖玖综合伊人| 在线视频日本亚洲性| 欧美精品成人一区二区在线观看| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美人成在线| 久久天天躁狠狠躁夜夜爽蜜月| 国产日韩欧美电影在线观看| 亚洲一级一区| 亚洲精品中文字幕在线| 亚洲电影免费在线观看| 久久精品中文字幕一区| 亚洲免费伊人电影在线观看av| 欧美专区在线观看一区| 欧美人在线观看| 欲香欲色天天天综合和网| 一区二区高清| 久久精品二区| 欧美亚洲综合在线| 欧美一区观看| 91久久久在线| 久久久久久婷| 国产精品99久久久久久www| 久久精品青青大伊人av| 亚洲精品久久嫩草网站秘色 | 欧美在线黄色| 国产精品久久久久一区二区三区共 | 欧美喷潮久久久xxxxx| 亚洲美女精品一区| 国产精品手机在线| 99成人精品| 国产精品你懂得| 欧美肥婆bbw| 国产精品swag| 一本大道久久精品懂色aⅴ| 亚洲精选大片| 国产精品试看| 久久久久国产一区二区三区| 免费国产一区二区| 黄色亚洲网站| 午夜日韩电影| 午夜精品久久久久久久久久久久久| 欧美精品福利视频| 久久一区二区三区四区五区| 久久亚洲美女| 中文网丁香综合网| 欧美日本国产一区| 亚洲视频axxx| 久久久久久久久蜜桃| 国产乱码精品一区二区三区不卡| 亚洲区第一页| 久久精品亚洲一区| 亚洲美女在线看| 国产婷婷97碰碰久久人人蜜臀| 亚洲国产女人aaa毛片在线| 蜜臀av性久久久久蜜臀aⅴ四虎| 最近看过的日韩成人| 久久av一区二区三区漫画| 国产一区二区三区在线播放免费观看| 午夜激情一区| 亚洲无亚洲人成网站77777| 午夜久久久久久久久久一区二区| 欧美日韩理论| 久久永久免费| 亚洲一区二区视频在线观看| 午夜免费电影一区在线观看| 欧美精品三级日韩久久| 小黄鸭精品密入口导航| 久久成人免费视频| 一本久道久久久| 国产色综合天天综合网| 亚洲免费在线观看视频| 小黄鸭精品密入口导航| 久久久www成人免费无遮挡大片| 亚洲国产精品va在线看黑人动漫| 一个色综合av| 日韩一二三区视频| 国产一区二区视频在线观看| 国产精品yjizz| 亚洲激情网站| 亚洲一区二区三区777| 亚洲视频免费| 免费久久99精品国产自| 亚洲欧美中日韩| 欧美一区二区精品久久911| 午夜影视日本亚洲欧洲精品| 久久av一区二区三区漫画| 欧美成人在线免费视频| 国产一区999| 国产亚洲一区二区三区在线播放| 亚洲国产婷婷香蕉久久久久久| 狠狠色狠狠色综合日日五| 日韩视频一区二区三区| 先锋亚洲精品| 亚洲精品中文字幕有码专区| 亚洲伊人观看| 免费亚洲一区二区| 欧美精品 国产精品| 国产精品一区二区久久国产| 揄拍成人国产精品视频| 亚洲一区区二区| 欧美a级在线| 久久精品三级| 国产精品日日摸夜夜摸av| 国产一区二区看久久| 精品91在线| 中文欧美在线视频| 91久久久在线| 欧美激情精品久久久久| 狠狠色狠狠色综合日日91app| 久久国产精品72免费观看| 亚洲免费av片| 国产精品你懂的在线欣赏| 一区二区三区**美女毛片 | 亚洲精品护士| 欧美一区激情| 久久久免费观看视频| 国产欧美视频一区二区| 91久久综合亚洲鲁鲁五月天| 国产精品国产馆在线真实露脸| 国产精品mm| 欧美一区永久视频免费观看| 亚洲欧美日韩一区二区三区在线观看| 欧美激情精品久久久久久| 一本色道久久综合亚洲精品不卡| 日韩一区二区精品| 国产日韩亚洲欧美| 91久久精品国产91性色tv| 国产精品s色| 久久综合久久综合久久| 欧美精品一区二区在线播放| 中文国产一区| 在线一区二区三区四区五区| 国产精品永久免费| 午夜亚洲精品| 久久九九免费| 久久gogo国模啪啪人体图|