ページ 1 / 1
源流
Posted: 2013年8月03日(土) 17:59
by 回転行列について
コード:
DrawTriangle( dx/2-5*sin(ang), dy/2+5*cos(ang),
dy/2-2*cos(ang)-10*sin(ang), dy/2-2*sin(ang)+10*cos(ang),
dx/2+2*cos(ang)-10*sin(ang), dy/2+2*sin(ang)+10*cos(ang),
-1, TRUE ) ;
上記のように逆三角形を頂点(0,5)(-2,10)(2,10)で(20,20)を軸にして回転させたいのですがうまく出来ません。
何がおかしいのでしょうか。
Re: 源流
Posted: 2013年8月03日(土) 18:03
by みけCAT
dx,dyには何が入りますか?
Re: 源流
Posted: 2013年8月03日(土) 18:05
by 源流
両方共20が入っています。
Re: 源流
Posted: 2013年8月03日(土) 18:08
by みけCAT
(x,y)を(u,v)を中心として反時計回りにangラジアン回転させたあとの座標(xx,yy)は
コード:
// (x,y)をx軸方向に-u、y軸方向に-v平行移動し、回転の中心を原点にする
x2=x-u
y2=y-v
// 回転行列で回転する
x3=cos(ang)*x2-sin(ang)*y2
y3=sin(ang)*x2+cos(ang)*y2
// 回転後の座標をx軸方向にu、y軸方向にv平行移動し、回転の中心を本来の位置に戻す
xx=x3+u
yy=y3+v
という式で計算でき、まとめると
コード:
xx=cos(ang)*(x-u)-sin(ang)*(y-v)+u
yy=sin(ang)*(x-u)+cos(ang)*(y-v)+v
となります。
追記
DXライブラリだと、y軸が反転している影響で時計回りになるかもしれません。
Re: 源流
Posted: 2013年8月03日(土) 18:10
by みけCAT
回転行列について さんが書きました:何がおかしいのでしょうか。
引数の式がおかしいです。