blog正式转移到了这里:

http://blog.phoeagon.cz.cc



I know

phoeagon啲01世界

1999 年 6 月 24 日  星期四   晴天


[Code: PKU 3447] 分類: Code Storage
Code For PKU 3447
//by phoeagon
type
    shape=packed record
        n:longint;
        sig:char;
        ax,ay,bx,by:array[0..30]of extended;
        end;
    var
        dt:array[0..30]of shape;
        ct,top:longint;
        mk:array[0..30]of char;
    procedure dealstr(var q:string);
        var
            i:longint;
        begin
            i:=1;
            while q[i]=' 'do
                inc(i);
            delete(q,1,i-1);
        end;
    procedure gtpt(var x,y:extended);
        var
            i,b:longint;
            u:string;
            t:char;
        begin
            read(t);
            u:='';
            repeat
                u:=u+t;
                read(t);
            until eoln or (t=#32);
            dealstr(u);
            delete(u,1,1);
            if not eoln then delete(u,length(u),1);
            for i:=1 to length(u)do
                if u[i]=','then
                    begin
                        val(copy(u,1,i-1),x,b);if b<>0 then write(copy(u,1,i-1));
                        val(copy(u,i+1,length(u)-i),y,b);if b<>0 then write(copy(u,i+1,length(u)-i));
                        break;
                    end;
        end;
    procedure square(var q:shape);
        var
            i:longint;
            mdx,mdy:extended;
            x:char;
        begin
            //read(x);
            q.n:=4;
            gtpt ( q.ax[1] , q.ay[1] );
            gtpt ( q.ax[3] , q.ay[3] );
            mdx:=(q.ax[1]+q.ax[3])/2;
            mdy:=(q.ay[1]+q.ay[3])/2;
            q.ax[2] := mdx + ( q.ay[1]-mdy );
            q.ay[2] := mdy + ( mdx-q.ax[1] );
            q.ax[4] := mdx + ( q.ay[3]-mdy );
            q.ay[4] := mdy + ( mdx-q.ax[3] );
            q.bx[1]:=q.ax[2];    q.bx[2]:=q.ax[3];    q.bx[3]:=q.ax[4];    q.bx[4]:=q.ax[1];
            q.by[1]:=q.ay[2];    q.by[2]:=q.ay[3];    q.by[3]:=q.ay[4];    q.by[4]:=q.ay[1];
            readln;
        end;
    function dis(const x1,y1,x2,y2:extended):extended;
        begin
            exit( sqrt(sqr(x1-x2)+sqr(y1-y2)) );
        end;
    procedure rect(var q:shape);
        var
            i,j,i1,j1:longint;
            mdx,mdy,fur,tp:extended;
            x:char;
            //z:shape;
        begin
            //read(x);
            q.n:=4;
            //fillchar(q,sizeof(q),0);
            gtpt(q.ax[1],q.ay[1]);
            gtpt(q.ax[2],q.ay[2]);
            gtpt(q.ax[3],q.ay[3]);
            fur:=0;
            mdx:=(q.ax[1]+q.ax[3])/2;
            mdy:=(q.ay[1]+q.ay[3])/2;
            q.ax[4] := 2*mdx-q.ax[2];
            q.ay[4] := 2*mdy-q.ay[2];
            q.bx[1]:=q.ax[2];    q.bx[2]:=q.ax[3];    q.bx[3]:=q.ax[4];    q.bx[4]:=q.ax[1];
            q.by[1]:=q.ay[2];    q.by[2]:=q.ay[3];    q.by[3]:=q.ay[4];     q.by[4]:=q.ay[1];
            readln;
        end;
    procedure triangle(var q:shape);
        var
            i:longint;
            t:char;
        begin
            //read(t);
            q.n:=3;
            for i:=1 to 3 do
                gtpt(q.ax[i],q.ay[i]);
            for i:=2 to 3 do
                begin
                    q.bx[i]:=q.ax[i-1];
                    q.by[i]:=q.ay[i-1];
                end;
            q.bx[1]:=q.ax[3];
            q.by[1]:=q.ay[3];
            readln;
        end;
    procedure line(var q:shape);
        var
            i:longint;
            t:char;
        begin
            //read(t);
            q.n:=1;
            gtpt(q.ax[1],q.ay[1]);
            gtpt(q.bx[1],q.by[1]);
            readln;
        end;
    procedure polygon(var q:shape);
        var
            i:longint; x:char;
        begin
            reaD(q.n);        read(x);
            for i:=1 to q.n do
                    gtpt(q.ax[i],q.ay[i]);
            for i:=2 to q.n do
                begin
                    q.bx[i]:=q.ax[i-1];
                    q.by[i]:=q.ay[i-1];
                end;
            q.bx[1]:=q.ax[q.n];
            q.by[1]:=q.ay[q.n];
            readln;
        end;
    function outproduct(const x1,y1,x2,y2:extended):extended;
        begin
            exit( x1*y2-x2*y1);
        end;
    function cross(const x1,y1,x2,y2,x3,y3,x4,y4:extended):boolean;
        begin
            if (outproduct( x1-x2, y1-y2, x1-x4, y1-y4 )*
            outproduct(x1-x2, y1-y2, x1-x3 , y1-y3 ) <=0)and
            (outproduct (x3-x4, y3-y4, x3





訪客留言 (返回 phoeagon 的日誌)

訪客名稱:
電郵地址: (不會公開)
驗證碼:  按此更新驗證碼 (如看不清楚驗證碼請點擊圖片刷新)
俏俏話: (必需 登入 後才能使用此功能)
[ 開啟多功能編輯器 ]







人氣:79467
暱稱: phoeagon
性別: 男
MORE...  
« February 2020 »
SMTWTFS
1
2345678
9101112131415
16171819202122
23242526272829
» 最新日誌
Blog Moved!
跨站jsMath实现
路由表是个好东西
Twitter Fav列表达陈100...
搞定了公式显示
» 日誌分類
全部 (175)
Code Storage (11)
Math&Phy@Chem@MM (8)
Music Anyway (5)
Programming Impossible (28)
RSS提示 (2)
StorageBox (5)
'Bout Here (12)
滑鼠人生 (42)
碎屑 (51)
未分類 (11)
» 訪客留言
最近三個月尚無任何留言
» 最近訪客
最近沒有訪客
» 每月文章
» 日誌訂閱
尚未訂閱任何日誌
» 我的好友
» 我的連結
Ink Mark --Jlim
StarKirby
|S||S||S|
「流年祭」
» 日誌統計
文章總數: 175
留言總數: 86
今日人氣: 2
累積人氣: 79467
» 站內搜索
RSS Feed