FZU 1576 計算幾何 費馬點

2022-03-22 19:51:02 字數 1617 閱讀 3253

oaiei居住在a城市,並且是這個城市建設的總設計師。最近有個問題一直困惱著他。a城市裡有三個大型工廠,每個大型工廠每天都需要消耗大量的石油,現在城市裡要建設乙個石油中轉站,從石油中轉站到三個大型工廠都需要鋪設石油管道。現在你的問題來了,應該如何建設這個石油中轉站,使得石油中轉站到三個大型工廠所需要鋪設的石油管道線路最短,你能夠幫助他嗎?

設石油中轉站b的座標為(x,y),三個大型工廠的座標分別為c(x1,y1),d(x2,y2),e(x3,y3),所輸要鋪設的石油管道線路總長為distance(b,c)+distance(b,d)+distance(b,e),其中distance(a,b)表示a,b兩點之間的歐幾里德距離。

input

第一行為乙個整數c(1<=c<=200),表示測試資料的組數。

以下c行,每行6個整數,分別表示c、d、e點 (x,y)的座標。注意:b點的選址可以與c、d、e點相重合。

output

對於每個輸入資料,輸出一行兩個數m1,m2,中間用乙個空格分隔開。m1,m2分別四捨五入到小數點後兩位,表示石油中轉站的座標。

sample input

1

0.00 0.00 1.00 0.00 0.00 1.00

sample output

0.21 0.21 

【模板】:

1.在乙個三角形中,到3個頂點距離之和最小的點叫做這個三角形的費馬點。

2.費馬點計算方法:

(1)若三角形abc的3個內角均小於120°,那麼3條距離連線正好平分費馬點所在的周角。所以三角形的費馬點也稱為三角形的等角中心。

(2)若三角形有一內角不小於120度,則此鈍角的頂點就是距離和最小的點。

3.如何計算等角中心呢?

做任意一條邊的外接等邊三角形,得到另一點,將此點與此邊在三角形中對應的點相連

如此再取另一邊作同樣的連線,相交點即費馬點

證明畫幾條輔助線就出來了~這裡就不證明了

【**】:
#include #include #include #include using namespace std;

struct vec

};struct point

};double ddot(vec a,vec b)

double getlen(vec a)

double getlen(point a,point b)

bool morethan120(double xa,double ya,double xb,double yb,double xc,double yc)

return false;

}inline void swap(double &a,double &b)

point getanotherpoint(point a,point b,point c)

else if (morethan120(xb,yb,xa,ya,xc,yc))

else if (morethan120(xc,yc,xa,ya,xb,yb))

else

}//sleep(1000000);

}

FZU 2099 魔法陣(計算幾何)

problem 2099 魔法陣 兩個正三角形和乙個圓組成乙個魔法陣,如圖,圓心和正三角形內心重合,三角形的重疊部分是乙個正六邊形。求魔法陣輪廓圍成的面積。第一行乙個整數t表示資料組數 t 1000 接下來t行每行2個實數,正三角形邊長l和圓的半徑r 0對於每組資料輸出乙個實數,魔法陣輪廓圍成的面積...

計算幾何與計算幾何與

博主這裡曾經學過計算幾何 下文簡稱jj 所以沒有證明或者說明某些演算法,不適合初學者食用 用一道例題及黃學長的 來理解 黃學長 include include include include include include include include include include define...

計算幾何 幾何基礎

這章早在2017年寒假就在培訓的時候由來自清華的hta老師上過了 但是本蒟蒻那時候並不是懂的太多 所以這週ww老師又上了一遍 大概記錄一下 大概就跟高中必修4的平面向量差不多 有上過的應該都會 a x1,y1 b x2,y2 a b x1x2 y1y2 a b a b cos a,b 運用 若a與b...