Z形成術

MikuHatsune2011-03-08

外科の講義で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")