判斷乙個點是否在凸多邊形內可以用叉乘
叉乘概念大家都知道,向量a和向量b的叉積的絕對值表示以向量a和向量b為兩邊形成的平行四邊形的面積。
s=∣a*b∣
其中s表示以向量a和向量b為兩邊形成的平行四邊形的面積,以此類推,那麼(1/2)*s就可以表示以向量a和向量b為兩邊形成的三角形的面積。
假設三角形的3的頂點分別為p1(x1,y1),p2(x2,y2),p3(x3,y3),則向量a可表示為(x2-x1,y2-y1),向量b可表示為(x3-x1,y3-y1).
根據二維向量叉積的運算 ∣a×b|=(x2-x1)(y3-y1) - (y2-y1)(x3-x1)
則此三角形面積s =|((x2 - x1)*(y3 - y1)-(y2 - y1)*(x3 - x1) )/2|
我們不需要絕對值我們只要知道在向量逆時針側和順時針側的叉積是符號不等的
所以我們可以用這個來判斷
還有一種方法是三角形的面積等於多邊形面積
多邊形面積不太好求啊。。
time limit: 1000 ms
memory limit: 65536 k
total submit: 374(122 users)
total accepted: 160(115 users)
rating:
special judge: no
description
dota中英雄技能攻擊會有乙個範圍,現在釋放乙個技能給出他的攻擊範圍和目標英雄的位置,問是否能攻擊到。攻擊範圍保證是乙個凸多邊型
input
有多組測試資料 第一行輸入三個整數n,a,b, 期中n代表攻擊範圍是給出的n個點組成的凸多邊形,按照逆時針方向依次給出,,a,b表示目標英雄的座標(3 <=n <100, 0 < a,b<100)
接下來有n行,每行兩個整數x,y(0 < x,y <100)表示每個點的座標
攻擊範圍在邊緣也算在內
處理到檔案結束
output
每組結果輸出佔一行 如果能夠攻擊到輸出」yes」
否則輸出」no」
sample input
3 1 1 4 4
5 44 6
sample output
noauthor
萬祥 廢話完了
上**#include
#include
using namespace std;
struct tuxing
p[10003];
int chacheng(int x1,int y1,int x2,int y2,int x3,int y3)
int main()
int a[1003]=;
int t=chacheng(p[0].x,p[0].y,p[1].x,p[1].y,p[2].x,p[2].y);
int flag=0;
for(int i=1;i
}if(!flag)
printf("yes\n");
else printf("no\n");}}
受到CC攻擊有哪些症狀?
當 被cc攻擊時,受到不同型別的攻擊都會有不同的症狀表現,通過對應的症狀,就能大致分辨出攻擊的型別,從而對症下藥防禦攻擊。伺服器能正常連線到就排除了被大流量cc攻擊的可能,這個時候可以檢視下伺服器的任務管理器,檢視伺服器的cpu占用和網路頻寬占用 如果是w3wp.exe程序大量占用cpu,就可以馬上...
哈理工 1073 病毒
病毒 time limit 1000 ms memory limit 65536 k total submit 1154 334 users total accepted 423 298 users rating special judge no description 某種病毒襲擊了某地區,該地區...
哈理工 1143 泉水
泉水 time limit 1000 ms memory limit 65536 k total submit 1890 460 users total accepted 726 413 users rating special judge no description leyni是乙個位址調查員,...