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

poj 1269 Intersecting Lines

   題目意思是給出2條直線,然后判斷其是否相交,平行,還是重合。剛開始以為是判斷2條線段的關系,用了黑書的模板寫了,發現連樣例
都過不了。后面改了很多才過了。先判斷2條直線所在的向量是否平行,這個可以判斷這2個向量的叉積是否為0,然后再判斷線段是否重合,
可以選3點判斷叉積是否為0。如果向量不平行的話,直接求交點。求交點的公式是用了黑書里面的方法,先求出2個叉積代表2個三角形的
有向面積,然后根據定比分點的關系(面積的比例等于交點分其中一條線段的比例)可以推出計算公式。
   有叉積和點積這2個工具確實能方便的解決很多問題。

   代碼如下:
#include <stdio.h>
#include <string.h>
#include <math.h>
struct Point
{
    double fX;
    double fY;
};
Point beg[2], end[2];
int nN;
const double fPrecision = 1e-8;

double Det(double fX1, double fY1, double fX2, double fY2)
{
    return fX1 * fY2 - fX2 * fY1;
}

double Cross(Point a, Point b, Point c)
{
    return Det(b.fX - a.fX, b.fY - a.fY, c.fX - a.fX, c.fY - a.fY);
}

int DblCmp(double fD)
{
    if (fabs(fD) < fPrecision)
    {
        return 0;
    }
    else
    {
        return (fD > 0 ? 1 : -1);
    }
}

double DotDet(double fX1, double fY1, double fX2, double fY2)
{
    return fX1 * fX2 + fY1 * fY2;
}

double Dot(Point a, Point b, Point c)
{
    return DotDet(b.fX - a.fX, b.fY - a.fY, c.fX - a.fX, c.fY - a.fY);
}

int BetweenCmp(Point a, Point b, Point c)
{
    return DblCmp(Dot(a, b, c));
}

int SegCross(Point a, Point b, Point c, Point d, Point& p)
{
    double s1, s2, s3, s4;
    int d1, d2, d3, d4;
    d1 = DblCmp(s1 = Cross(a, b, c));
    d2 = DblCmp(s2 = Cross(a, b, d));
    d3 = DblCmp(s3 = Cross(c, d, a));
    d4 = DblCmp(s4 = Cross(c, d, b));
    
    Point e, f;
    e.fX = a.fX - b.fX;
    e.fY = a.fY - b.fY;
    f.fX = c.fX - d.fX;
    f.fY = c.fY - d.fY;
    if (DblCmp(Det(e.fX, e.fY, f.fX, f.fY)) == 0)//2個向量共線
    {
        if (d1 * d2 > 0 && d3 * d4 > 0)//不在同一條直線上
        {
            return 0;
        }
        else
        {
            return 2;
        }
    }
    
    //2條直線相交
    p.fX = (c.fX * s2 - d.fX * s1) / (s2 - s1);
    p.fY = (c.fY * s2 - d.fY * s1) / (s2 - s1);
    return 1;
}

int main()
{
    //freopen("out.txt", "w", stdout);
    while (scanf("%d", &nN) == 1)
    {
        printf("INTERSECTING LINES OUTPUT\n");
        Point p;
        for (int i = 0; i < nN; ++i)
        {
            scanf("%lf%lf%lf%lf", &beg[0].fX, &beg[0].fY, &end[0].fX, &end[0].fY);
            scanf("%lf%lf%lf%lf", &beg[1].fX, &beg[1].fY, &end[1].fX, &end[1].fY);
            int nRet = SegCross(beg[0], end[0], beg[1], end[1], p);
            if (nRet == 0)
            {
                printf("NONE\n");
            }
            else if (nRet == 1)
            {
                printf("POINT %.2f %.2f\n", p.fX, p.fY);
            }
            else
            {
                printf("LINE\n");
            }
        }
        printf("END OF OUTPUT\n");
    }
    
    return 0;
}

posted on 2012-07-17 15:20 yx 閱讀(1050) 評論(0)  編輯 收藏 引用 所屬分類: 計算幾何

<2012年3月>
26272829123
45678910
11121314151617
18192021222324
25262728293031
1234567

導航

統計

公告

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

me

好友

同學

網友

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            狂野欧美性猛交xxxx巴西| 亚洲高清中文字幕| 伊人伊人伊人久久| 国产亚洲毛片在线| 国产性猛交xxxx免费看久久| 国产一区二区三区无遮挡| 国产一区二区三区网站| 在线播放亚洲| 99综合在线| 欧美激情小视频| 欧美国产亚洲视频| 欧美日韩亚洲一区二区三区在线 | 午夜精品美女久久久久av福利| 一区二区国产日产| 亚洲午夜高清视频| 久久精品国产2020观看福利| 欧美午夜精品电影| 香蕉久久夜色精品国产使用方法| 欧美亚洲一区二区在线观看| 久久午夜电影| 欧美亚一区二区| 在线观看亚洲专区| 亚洲综合激情| 欧美国产日韩精品免费观看| 99在线精品视频| 久久久久在线观看| 国产精品久久7| 亚洲激情小视频| 久久riav二区三区| 99精品国产福利在线观看免费| 欧美在线播放一区| 欧美性色综合| 免费国产一区二区| 国产精品国产亚洲精品看不卡15| 精品成人一区二区三区| 亚洲伊人伊色伊影伊综合网| 欧美福利视频| 久久精品99| 国产麻豆综合| 欧美/亚洲一区| 国产欧美一区在线| 久久久久亚洲综合| 最新成人av在线| 欧美综合国产| 国产精品一级二级三级| 99国产精品久久久久久久久久| 欧美专区在线播放| 日韩视频在线永久播放| 久久综合伊人77777| 国产视频精品免费播放| 亚洲欧美日韩国产成人| 国产日韩欧美夫妻视频在线观看| 亚洲欧美日韩国产成人精品影院| 欧美极品影院| 亚洲精品久久久久久久久| 久色婷婷小香蕉久久| 欧美一区二区精品| 国产欧美69| 欧美视频福利| 99国内精品久久| 亚洲激情小视频| 欧美~级网站不卡| 亚洲黄色免费网站| 欧美电影电视剧在线观看| 亚洲欧美另类在线观看| 国产精品网站视频| 亚洲伊人一本大道中文字幕| 国产精品国产三级国产普通话三级| 欧美大片免费看| 91久久精品网| 亚洲欧洲一区二区天堂久久| 欧美日本精品一区二区三区| 亚洲香蕉视频| 国产精品视频一| 亚洲欧美日韩成人高清在线一区| 欧美刺激午夜性久久久久久久| 久久国产福利国产秒拍| 精品粉嫩aⅴ一区二区三区四区| 久久综合九色综合欧美狠狠| 久久久久9999亚洲精品| 影音先锋亚洲电影| 亚洲人久久久| 国产精品视频不卡| 久久综合一区二区| 男人的天堂亚洲| 亚洲一区欧美一区| 久久精品二区三区| 国产午夜精品在线| 激情一区二区| 亚洲激情电影在线| 国产精品二区二区三区| 久久久久久久久久看片| 美女露胸一区二区三区| 一本色道88久久加勒比精品| 亚洲一区二区三区高清| 美女尤物久久精品| 亚洲主播在线观看| 亚洲第一色中文字幕| 亚洲欧美日韩国产| 久久久精品性| 亚洲一级在线观看| 美女黄网久久| 欧美一区二区三区四区在线| 久久一综合视频| 亚洲欧美另类国产| 久久人体大胆视频| 欧美在线电影| 欧美日韩免费网站| 欧美 日韩 国产 一区| 国产精品久久久久久久久久妞妞| 免费看的黄色欧美网站| 国产精品国产馆在线真实露脸| 你懂的一区二区| 国产精品一页| 亚洲欧美一区二区激情| 蜜桃久久精品一区二区| 久久人体大胆视频| 欧美无乱码久久久免费午夜一区| 欧美国产一区视频在线观看 | 亚洲精品一区二区网址| 激情五月***国产精品| 99re66热这里只有精品3直播| 久久久久久穴| 国产精品麻豆成人av电影艾秋| 亚洲国产国产亚洲一二三| 韩国成人理伦片免费播放| 亚洲专区一区| 欧美一区二视频| 国产精品免费看久久久香蕉| 亚洲日本中文| 亚洲日本va在线观看| 老色鬼久久亚洲一区二区| 久久免费99精品久久久久久| 国产视频精品免费播放| 午夜视频一区在线观看| 亚洲免费网址| 国产欧美日韩精品专区| 亚洲欧美另类在线| 久久精品成人欧美大片古装| 国产日韩欧美一区二区三区四区 | 尤物精品在线| 久久免费视频网| 欧美国产第一页| 亚洲日本理论电影| 欧美成人免费全部观看天天性色| 亚洲成色www久久网站| 亚洲日韩欧美视频| 欧美极品一区| 国产精品夜夜夜| 久久久久亚洲综合| 亚洲韩国青草视频| 欧美日本中文字幕| 一本大道久久a久久综合婷婷 | 欧美a级片网| 亚洲欧洲日产国码二区| 一区二区三区www| 国产精品久久久久av免费| 亚洲一区久久| 久久午夜精品| 国产精品多人| 久久视频免费观看| 亚洲天堂av电影| 国产在线视频欧美| 免费日韩av| 亚洲精品国产精品国自产观看浪潮| 亚洲精品一区二区三区四区高清| 亚洲国内自拍| 亚洲欧美三级伦理| 国产一区二区在线免费观看| 牛牛国产精品| 亚洲伊人伊色伊影伊综合网| 久久综合久久久久88| 99re热精品| 国内精品久久久久久影视8| 黄色av一区| 久热精品视频在线| 亚洲一区二区三区在线| 男人的天堂亚洲| 亚洲欧美在线磁力| 亚洲精品视频一区| 国产一级久久| 欧美色另类天堂2015| 久久久久久国产精品mv| 日韩亚洲精品电影| 欧美11—12娇小xxxx| 性欧美8khd高清极品| 亚洲日本成人| 狠狠狠色丁香婷婷综合久久五月| 欧美日韩高清在线| 久久人人爽国产| 午夜精品久久久久久久久久久久 | 国产主播一区二区三区| 欧美日韩蜜桃| 亚洲电影在线免费观看| 欧美一区二区视频免费观看| 亚洲日本成人网| 亚洲免费精彩视频| 国产一区二区无遮挡| 亚洲大片免费看| 欧美另类久久久品|