CDCのModifyWorldTransformを用いて”年月日時分秒”を指定回転角度で回転して表示したいのですが、80度から表示できません。
たぶんXFORMの値(eDx,eDy)がおかしいと思うのですが、どなたか教えて下さい。
環境はXP VC++.NETです。(以下ソース抜粋)
------------------------------------------------------------
int OutWith = 210;//指定幅
int OutHige = 320;//指定高さ
int bitcnt = 1;//ドット当たりのビット数...1==>2値データ
int clrused = 1 << mbitcnt;//パレットの個数...2
//カラーパレット
pClrPlt = (RGBQUAD*)new RGBQUAD[miClrUsed];
memset(pClrPlt, 0, isizeCP); //0クリア
//0:白
psetcp = pClrPlt;
psetcp->rgbBlue = 255;
psetcp->rgbRed = 255;
psetcp->rgbGreen = 255;
//1:指定色
psetcp++;
psetcp->rgbRed = (BYTE)(0xaa);
psetcp->rgbGreen = (BYTE)(0x00);
psetcp->rgbBlue = (BYTE)(0xff);
int theta = 80; // 指定回転角度
float PI = (float)3.141592; //パイ
//角度(ラジアン)
float angle = (theta * (float)PI / (float)180);
sint = sin(angle);
cost = cos(angle);
XFORM xf; // XFORM
xf.eM11 = (float)cost; //cost
xf.eM12 = (float)sint; //sint
xf.eM21 = (float)-sint;//-sint
xf.eM22 = (float)cost; //cost
xf.eDx = (float)-(OutWith*1);//★
xf.eDy = (float)-(OutHige*3);//★
mwtmode = MWT_RIGHTMULTIPLY;
::ModifyWorldTransform(CDC, &xf, mwtmode);
------------------------------------------------------------
・実際は幅、高さ、角度、色はユーザ指定ですが、ここでは固定にします。
・CDCはCreateCompatibleDC()し、CreateDIBSection()等で得たCBitmapをSelectObject()で設定しました。
(最終的には2値化したビットマップファイルに書き込みます。)
★角度thetaを変更すると、eDxとeDyも変更が必要なようですが、
計算式などがあるのさえ、わかりません。
***よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++ と、 1 2022/11/07 23:45
- その他(プログラミング・Web制作) 物理の斜方投射のシミュレーションにおける位置や速度の単位について 4 2023/05/31 09:50
- C言語・C++・C# C言語: ポインタ 5 2022/06/01 08:33
- PDF C#でfloatを整数部、小数部とも桁数固定で文字表示したい 2 2022/07/28 09:37
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- その他(プログラミング・Web制作) 物理の斜方投射で目盛りに数値を入れたい 2 2023/05/27 06:32
- その他(プログラミング・Web制作) Pythonにおける物理のシミュレーションでの単位変換について 2 2023/06/02 17:11
- その他(プログラミング・Web制作) Pythonでのかんたんな物理シミュレーションについての書籍 5 2023/06/02 07:37
- その他(プログラミング・Web制作) 物理の斜方投射の目盛り線とx軸、y軸の追加について 3 2023/05/26 21:11
- その他(プログラミング・Web制作) Pythonによる物理の斜方投射の位置座標表示について 2 2023/06/05 12:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
2の補数を計算するプログラム
-
迷路を脱出する経路探索プログ...
-
再起呼び出しの回数をカウント...
-
C言語で%を使わない余りの出し方
-
乱数で交互に偶数、奇数が、、、。
-
コマンドプロンプトのウィンド...
-
関数とビット列
-
【C#】SQL文の中に変数を埋め込...
-
OpenGLの惑星プログラム
-
当たり判定の処理がわかりません。
-
画像の拡大・縮小
-
乱数生成について
-
ModifyWorldTransformの引数XFO...
-
intとlongは同じ?
-
階乗のプログラム
-
C言語
-
C++で表を作成したいのです ...
-
returnの使い方
-
エラー C言語 プログラミング...
-
C言語で簡単なパックマンゲーム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報