找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
尊貴會員無限看帖不用回覆儲值後自動升級用戶組你準備好成為出色的版主了嗎?
無碼無修officecosplayfatege中出
命に代ええっちえ大神醫ipzz 255斎藤あみ与有糟糕3d

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

[繁]關於我轉生變成史

中和廣福路 不滿轎車

(4月新番)[繁]THE NEW

[繁]怪人的沙拉碗03-

[繁]魔法科高中的劣等

[繁]老夫老妻重返青春
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 3319|回復: 10
打印上一主題下一主題

[作業]C++判斷點在圖形內的條件[複製鏈接]

Rank: 2Rank: 2

帖子
990
積分
763 點
潛水值
21191 米
跳轉到指定樓層
樓主
發表於 2015-1-21 12:10 PM|只看該作者|倒序瀏覽
本帖最後由 snowflying 於 2015-9-18 10:50 AM 編輯

(1)題目:判斷點在三角形內,直角上點位於 (0,0) 另外兩點 (200 ,0) 、(0 ,100)。 請撰寫一程式,提示使用者輸入X與Y座標點,接著判斷點是否在三角形內 。(2)題目:請撰寫一程式,提示使用者輸入兩個矩形中心點X與Y,以及長與寬,接著判斷第二個矩形是否位於第一個矩形內或與第一個矩形重疊。
...
瀏覽完整內容,請先 註冊登入會員
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊

點評

snowflying 為什麼分類是待修正...?  發表於 2015-1-21 07:55 PM
分享分享0收藏收藏0支持支持0

使用道具檢舉

帖子
100
積分
93 點
潛水值
9200 米
頭香
發表於 2015-1-21 04:38 PM|只看該作者
本帖最後由 gitlab 於 2015-1-21 05:20 PM 編輯

1) 已知三角形ABC,求任意一點P是否在 ABC 內(習慣上,若P剛好在邊上也算在「內」)

方法依個人感覺由難到簡單排序

i)  "P 在 ABC 內" 若且唯若 "A和P在BC的同一半面 且 B和P在AC的同一半面 且 C和P在AB的同一半面"。

ii) 取三角形外任意一點Q,且 Q != P,作線段QP,
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

帖子
100
積分
93 點
潛水值
9200 米
3
發表於 2015-1-21 05:01 PM|只看該作者
如果你忘記伊莉的密碼,請在登入時按右邊出現的 '找回密碼'。輸入相關資料後送出,系統就會把密碼寄到你的E-Mail。
本帖最後由 gitlab 於 2015-1-21 05:02 PM 編輯

2)

先從一維情形開始,也就是給定數線上兩個區間 A=[ Al, Ar ] 、B=[ Bl, Br ],如何決定兩區間的關係?
為了方便,假設 A 的左端比較B的左端來的更左,也就是 Al <= Bl

a) 包含:Br <= Ar
b) 重疊:Bl <= Ar 且 Br > Ar
c) 分離:Bl > Ar

現在回到題目部份。題目給了長方形的中心點和邊長,所以我們可以求出長方形所在的二維區間,也就是找出這個長方形的x軸範圍是多少、y軸範圍是多少。接著就可以針對每一維去判斷重疊關係。
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

Rank: 2Rank: 2

帖子
274
積分
373 點
潛水值
8890 米
4
發表於 2015-1-21 08:55 PM|只看該作者
本帖最後由 a333221 於 2015-1-21 08:57 PM 編輯

不考慮誤差的話:

(2) 當 |x2-x1| <= (width1 + width2)/2 且 |y2-y1| <= (height1 + height2)/2 時兩矩形重疊,
     若重疊,再來考慮「第二個矩形是否位於第一個矩形內」?此時這問題容易處理,就略過囉
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。

使用道具檢舉

samou568 該用戶已被刪除
5
發表於 2015-9-18 09:44 AM|只看該作者
如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。
本帖最後由 samou568 於 2015-9-18 10:15 AM 編輯

1.
   (0, 0), (200, 0), (0, 100) => 三邊為 x=0, y=0, x+2y=200

   所以輸入 X, Y 只要 X, Y 的值滿足 X > 0 and Y > 0 and X+2Y < 200
   X, Y 就在三角形內部
   
  if (X > 0 && Y > 0 && X+2*Y < 200)
  {
   // X, Y 在三角形內部
...
瀏覽完整內容,請先 註冊登入會員





使用道具檢舉

samou568 該用戶已被刪除
6
發表於 2015-9-18 10:06 AM|只看該作者
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php
本帖最後由 samou568 於 2015-9-18 10:13 AM 編輯

2.
    兩中心點X的距離小於兩矩形寬度和的一半且兩中心點Y的距離小於兩矩形高度和的一半則兩矩形有重疊
  1. if (2*abs(x1-x2) < w1+w2 && 2*abs(y1-y2) < h1+h2) {
  2. // 兩矩形有重疊
  3. }
複製代碼
若有安裝色情守門員,可用無界、自由門等軟件瀏覽伊莉。或使用以下網址瀏覽伊莉: http://www.eyny.com:81/index.php

使用道具檢舉

samou568 該用戶已被刪除
7
發表於 2015-9-18 10:27 AM|只看該作者
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。
2. 第2矩形在第1矩形內部條件

   第2矩形的寬度及高度皆小於第1矩形(想當然爾, 不然如何包起來?)
   兩中心點X的距離+第2矩形的寬度一半小於第1矩形寬度的一半且
   兩中心點Y的距離+第2矩形的高度一半小於第1矩形高度的一半則第2矩形在第1矩形內部
  1. if (w2<w1 && h2<h1 && 2*abs(x1-x2)+w2<w1 && 2*abs(y1-y2)+h2<h1)
  2. {
  3. //第2矩形在第1矩形內部
  4. }
複製代碼
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

Rank: 4Rank: 4Rank: 4Rank: 4

帖子
7565
積分
4321 點
潛水值
34960 米
8
發表於 2015-9-18 11:26 AM|只看該作者
本帖最後由 chevylin0802 於 2015-9-18 11:27 AM 編輯
gitlab 發表於 2015-1-21 04:38 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

1) 已知三角形ABC,求任意一點P是否在 ABC 內(習慣上,若P剛好在邊上也算在「內」)

方法依個人感覺由難 ...
...
瀏覽完整內容,請先 註冊登入會員
系統已重置禁訪用戶到普通用戶和密碼一次
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。

使用道具檢舉

帖子
100
積分
93 點
潛水值
9200 米
9
發表於 2015-9-19 12:31 AM|只看該作者
本帖最後由 gitlab 於 2015-9-19 12:49 AM 編輯

樓上顯然是錯的

考慮三角形A(0,0),  B(0,1) , C(1,0)
AB=AC=1, AC=sqrt(2)=1.414..

再考慮一點 P(0.5,0.55) ,明顯 P 在 ABC 之外
然而 PA=0.5 < PB=PC=sqrt(0.5^2+0.55^2)=0.743... < 1

事實上,以A為圓心、AB為半徑做弧BC
由弧BC和直線BC所圍起來的弓形區域,
裡面每一點都在ABC之外,而且與A,B,C的距離都小於1...
瀏覽完整內容,請先 註冊登入會員
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

Rank: 2Rank: 2

帖子
274
積分
373 點
潛水值
8890 米
10
發表於 2015-9-21 09:44 PM|只看該作者
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
chevylin0802 發表於 2015-9-18 11:26 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

太麻煩了
公式沒那麼複雜

不是很能理解你給的「公式」?

原以為你是不是給到必要條件了?

...
瀏覽完整內容,請先 註冊登入會員





若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

Rank: 2Rank: 2

帖子
274
積分
373 點
潛水值
8890 米
11
發表於 2015-9-21 09:53 PM|只看該作者
若新密碼無法使用,可能是數據未更新。請使用舊密碼看看。
gitlab 發表於 2015-9-19 12:31 AM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

樓上顯然是錯的

考慮三角形A(0,0),  B(0,1) , C(1,0)

幫你修正一點小瑕疵,這行

  PA=0.5 < PB=PC=sqrt(0.5^2+0.55^2)=0.743... < 1
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部