Page
ということで前回のつづきですが、 3点の消点でやってみます。 ●元 ●平面的変形(もはや台形じゃないけど^^;) ●立体的変形の平面投影っぽく ●無理やり感満載の3消点 こんな感じとなりますね。 void getDaikeiPersPos(double x1,double y1,double x2,double y2,double x3,double y3,double x4,double y4,double* pX,double* pY,double tx,double ty,double delt){ double xa,ya,xb,yb,xa2,ya2,xb2,yb2; xa = ya = xb = yb = xa2 = ya2 = xb2 = yb2 = 0; getDaikeiPersPosX(x1,y1,x2,y2,x3,y3,x4,y4 ,&xa,&ya,&xb,&yb ,tx,delt); getDaikeiPersPosY(x1,y1,x2,y2,x3,y3,x4,y4 ,&xa2,&ya2,&xb2,&yb2 ,ty,delt); bool b = vCrossPoint(xa,ya, xb,yb, xa2,ya2, xb2,yb2,pX,pY); } void getDaikeiPersPosX(double x1,double y1,double x2,double y2,double x3,double y3,double x4,double y4 ,double* xa,double* ya,double* xb,double* yb,double t,double delt){ if(t<0) t = 0; if(t>1) t = 1; double xa1,ya1,xa2,ya2,xa3,ya3,xa4,ya4,xa5,ya5,xa6,ya6; double cx,cy,xx,yy; xa1 = ya1 = xa2 = ya2 = xa3 = ya3 = xa4 = ya4 = xa5 = ya5 = xa6 = ya6 = 0; cx = cy = xx = yy = 0; double tA = ...
コメント
コメントを投稿