日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

平面几何基本知识——学习笔记(2)

發(fā)布時(shí)間:2023/12/2 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 平面几何基本知识——学习笔记(2) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

7.向量的旋轉(zhuǎn)

向量可以繞起點(diǎn)旋轉(zhuǎn),如果向量(x,y)逆時(shí)針旋轉(zhuǎn)a(a用弧制度表示),公式:

x0=xcosa-ysina
y0=xsina+ycosa

代碼:

data Rotate(data x,double rad) {return data(x.x*cos(rad)-x.y*sin(rad),x.x*sin(rad)+x.y*cos(rad)); }

8.點(diǎn)在直線上的投影點(diǎn)

在平面幾何基本知識(shí)——學(xué)習(xí)筆記(1)中曾經(jīng)說(shuō)過(guò)關(guān)于點(diǎn)到線段的距離時(shí)提到過(guò)一個(gè)點(diǎn)q,但實(shí)際上這個(gè)點(diǎn)是有專名的,叫點(diǎn)在直線上的投影點(diǎn),怎么說(shuō)呢,投影點(diǎn)與直線外的點(diǎn)的連線的直線,剛好與原直線互相垂直。

給個(gè)例子,一切都明朗了,點(diǎn)Q就是點(diǎn)P關(guān)于直線AB所對(duì)應(yīng)的投影點(diǎn)。
盡管在求點(diǎn)到直線(線段)距離中巧妙的避開(kāi)了這個(gè)坑,但是某些作死題就是不放棄。所以為了求出點(diǎn)Q,要先把AB用參數(shù)方程A+tv表示,然后如果Q的參數(shù)為t0,那必有Q=A+t0*v,由于PQ垂直于AB,所以利用點(diǎn)積=向量A的長(zhǎng)度向量B的長(zhǎng)度兩個(gè)向量的夾角的cos值,cos90度=0,所以PQ和AB的點(diǎn)積等于0。即:

dot(v,P-(A+t0v))=0

然而根據(jù)藍(lán)書(shū)上的指引,點(diǎn)積竟然還滿足分配率!!!拆開(kāi)來(lái):

dot(v,P-A)-t0*dot(v,v)=0

問(wèn)題就成解有關(guān)t0的方程了,求出之后套參數(shù)方程即可求出投影點(diǎn)。

data getLm(data A,data B,data P) {data v=B-A;return A+v*(dot(v,P-A)/dot(v,v)); }

9.凸多邊形

凸多邊形在數(shù)學(xué)上早已定義過(guò),所以這里只講如何判定,是zzkksunboy神犇教我的,主動(dòng)加粗手動(dòng)膜拜。Orz Matchperson

用點(diǎn)積可以判斷兩個(gè)向量的夾角終邊的位置,如果點(diǎn)積為正,夾角的終邊在一,四象限,反之在二,三象限。那么由于在非凸多邊形中至少有一個(gè)角大于π,所以非凸多邊形的相鄰兩條邊對(duì)應(yīng)的向量的點(diǎn)積一定是負(fù)的,如果全程都沒(méi)有點(diǎn)積是負(fù)的,那么這個(gè)多邊形就是凸多邊形。

//有的題目需要根據(jù)給出的點(diǎn)順時(shí)針逆時(shí)針?lè)謩e判斷 bool check_Tu() {bool f=true;for (int i=1;i<=n;i++)if (fcmp(cross(a[i%n+1]-a[i],a[(i-2+n)%n+1]-a[i]),0)<0) {f=false; break;}if (f) return true;for (int i=1;i<=n;i++)if (fcmp(cross(a[(i+n-2)%n+1]-a[i],a[i%n+1]-a[i]),0)<0) return false;return true; }

10.求多邊形面積

如果是個(gè)凸多邊形,可以從某一個(gè)頂點(diǎn)出發(fā),把凸多邊形分成n-2個(gè)三角形,然后累加面積。

但是面對(duì)于非凸多邊形,……或許有人已經(jīng)發(fā)現(xiàn),因?yàn)椴娣e是有正負(fù)的,事實(shí)上,因?yàn)槿切蚊娣e是有向的,在外面的部分可以正負(fù)抵消掉,所以這個(gè)方法可以推廣到所有多邊形。
還有一點(diǎn)建議,可以選擇一個(gè)多邊形上節(jié)點(diǎn)來(lái)劃分頂點(diǎn),可以減少計(jì)算量^_^
還有,點(diǎn)要按順序求……不然下場(chǎng)很慘……

double getDS() {double tem=0;for (int i=2;i<n;i++)tem+=cross(p[i]-p[1],p[i+1]-p[1]);return tem/2; }

總結(jié)

以上是生活随笔為你收集整理的平面几何基本知识——学习笔记(2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。