底辺私立医大を卒業した医者って頭悪いよね? Part28at HOSP
底辺私立医大を卒業した医者って頭悪いよね? Part28 - 暇つぶし2ch560:卵の名無しさん (ワッチョイ 6724-QoCo [149.50.210.17 [上級国民]])
23/07/20 11:41:22.96 FCPwP+wT0.net
平面上の4点A,B,C,Dが存在している。
Aから反時計回りにのこりの3点を線分で結んだときに凸四角形ができるようにする

in3 <- \(P,A,B,C){
opc <- \(a,b) Re(a)*Im(b)-Im(a)*Re(b)
sum(opc(B-A,P-A)>0,opc(C-B,P-B)>0,opc(P-A,C-A)>0)%%3==0
}
is.concave=\(A,B,C,D){
c(in3(A,B,C,D),in3(B,C,D,A),in3(C,D,A,B),in3(D,A,B,C)) |> any()
}
Do =\(){
sq=cbind(runif(4),runif(4))
sq=round(sq,2)
A=sq[1,1]+1i*sq[1,2]
B=sq[2,1]+1i*sq[2,2]
C=sq[3,1]+1i*sq[3,2]
D=sq[4,1]+1i*sq[4,2]
ABCD=c(A,B,C,D)
G=mean(ABCD)
if(is.concave(A,B,C,D)){
par(mfrow=c(2,2))
Plot(0,1,zero=FALSE) ; pta(A) ; pta(B) ; pta(C) ; pta(D) ; pt(G,'.')
Plot(0,1,zero=FALSE) ; pta(A) ; pta(B) ; pta(C) ; pta(D) ; pt(G,'.')
Polygon(A,B,C,D)
Plot(0,1,zero=FALSE) ; pta(A) ; pta(B) ; pta(C) ; pta(D) ; pt(G,'.')
Polygon(A,C,B,D,Col=2)
Plot(0,1,zero=FALSE) ; pta(A) ; pta(B) ; pta(C) ; pta(D) ; pt(G,'.')
Polygon(A,B,D,C,Col=3)
}else{
layout(1)
Arg(ABCD-G) |> order() -> ord
tmp=c(ord,ord)
i=which(tmp==1)[1]
ord=tmp[i:(i+3)]
cat(LETTERS[ord],'\n')
Plot(0,1,zero=FALSE) ; pta(A) ; pta(B) ; pta(C) ; pta(D) ; pt(G,'.')
Polygon(ABCD[ord])
}
invisible(ABCD)
}
(Do())


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch