相互に直交する3つの円、そして三角形の垂心

  • 三角形の垂心の座標の求め方(こちら)
  • 相互に弧が直交する3つの円は、次を満たす
    • 3つの円の中心を3点とする三角形を考える
    • 円のペアの交点は、その2つの円の中心を結ぶ辺に、その三角形の垂心から下した垂線上にある

  • 今、3個の円が作る3つの円のペアについて見る。円のペアの交点を結んだ線がペアの数(3)本ある。このうち2本を変えずに1個の円を拡縮すると、最後のペアの線は、垂心を変えないままに、その傾斜角度を変える
  • また、そのように1個の円の拡縮は、垂心を変えていないし、3個の円の弧が相互に直交のままであることも変わらない
ar<-1
br<-2
cr<-1.5

x1<-0
y1<-0

x2<-sqrt(ar^2+br^2)
y2<-0

t<-acos(ar^2/(sqrt(ar^2+br^2)+sqrt(ar^2+cr^2)))

r<-sqrt(ar^2+cr^2)

x3<-r*cos(t)
y3<-r*sin(t)

thetas<-seq(from=0,to=1,length=100)*2*pi

X1<-ar*cos(thetas)+x1
Y1<-ar*sin(thetas)+y1
X2<-br*cos(thetas)+x2
Y2<-br*sin(thetas)+y2
X3<-cr*cos(thetas)+x3
Y3<-cr*sin(thetas)+y3

xlim<-ylim<-range(c(X1,Y1,X2,Y2,X3,Y3))

plot(X1,Y1,xlim=xlim,ylim=ylim,type="l")
par(new=TRUE)
plot(X2,Y2,xlim=xlim,ylim=ylim,type="l")
par(new=TRUE)
plot(X3,Y3,xlim=xlim,ylim=ylim,type="l")

## 垂心の座標

M1<-matrix(c(-x2*x3-y1^2,y1,1,
-x1*x3-y2^2,y2,1,
-x1*x2-y3^2,y3,1),3,3,byrow=TRUE)
M2<-matrix(c(x1,-x1^2-y2*y3,1,
x2,-x2^2-y1*y3,1,
x3,-x3^2-y1*y2,1),3,3,byrow=TRUE)
M3<-matrix(c(x1,y1,1,x2,y2,1,x3,y3,1),3,3,byrow=TRUE)

Xcenter<-det(M1)/det(M3)
Ycenter<-det(M2)/det(M3)

points(Xcenter,Ycenter,col=2)
# 三角形
segments(c(x1,x2,x3),c(y1,y2,y3),c(x2,x3,x1),c(y2,y3,y1))


# 垂心から3辺への垂線を引く
abline(v=Xcenter)
tmpa<--(x2-x3)/(y2-y3)
tmpb<--tmpa*Xcenter+Ycenter
abline(tmpb,tmpa)
tmpa<--(x3-x1)/(y3-y1)
tmpb<--tmpa*Xcenter+Ycenter
abline(tmpb,tmpa)