外科の講義でZ形成術というのを学んだ。
黒線に2つある二辺挟角をthetaとする。
3つ黒い直線はすべて長さl
黒線に沿って切開し、二辺挟角の位置を入れ替えると、図では横に傷が縮小して、縦に拡大される。
thetaがπ/3のとき、約73%の拡大縮小効果が得られて、もっとも効率が良い。
thetaやlをいじくって、傷の面積や創縁の推移を調べよう
と思ったけど、ちょっと難しいので、気が向いたらやる。
x<- 5 y<- 1 l<- 4 theta<- (1/3)*pi M<- matrix(c(cos(theta),sin(theta),-sin(theta),cos(theta)),2,2) M<- function(rad){ rot<- matrix(c(cos(rad),sin(rad),-sin(rad),cos(rad)),2,2) return(rot) } OP<- matrix(c(x,y),nr=2,nc=1) PQ<- matrix(c(0,l),2,1) QP<- matrix(c(0,-l),2,1) OQ<- OP+PQ OA<- OP+M(theta)%*%PQ OB<- OQ-M(theta)%*%PQ posx<- c(OA[1],OP[1],OQ[1],OB[1]) posy<- c(OA[2],OP[2],OQ[2],OB[2]) xlim<- c(0,10) ylim<- c(0,10) plot(posx,posy,xlim=xlim,ylim=ylim,type="n") lines(c(OA[1],OP[1]),c(OA[2],OP[2]),lwd=2) lines(c(OQ[1],OP[1]),c(OQ[2],OP[2]),lwd=2) lines(c(OQ[1],OB[1]),c(OQ[2],OB[2]),lwd=2) par(new=TRUE) Oq<- OP+M((1/2)*pi-theta)%*%PQ Op<- Oq+matrix(c(l,0),2,1) OQq<- Op+M((1/2)*pi-theta)%*%PQ posX<- c(Oq[1],OP[1],OQq[1],Op[1]) posY<- c(Oq[2],OP[2],OQq[2],Op[2]) plot(posx,posy,xlim=xlim,ylim=ylim,type="n") lines(c(Oq[1],OP[1]),c(Oq[2],OP[2]),lwd=2,col=2) lines(c(OQq[1],Op[1]),c(OQq[2],Op[2]),lwd=2,col=2) lines(c(Oq[1],Op[1]),c(Oq[2],Op[2]),lwd=2,col=2) title("Z plasty")