TCanvasのベジェ曲線描画

解決


カビ  2006-06-30 02:53:05  No: 62382

はじめまして。初めて質問させていただきます。

C++Builderを使用してペイントツールを作成しておりまして、
MSのペイントの  曲線ツールと同じようなツール
(はじめに直線を引き次のクリックアンドドラッグで線がぐいーんってなるやつ)
を作りたいと思っています。(ベジェ曲線というらしいですね)
調べたところ、ベジェ曲線はPolyBezier関数を使用して描画するようなのですが
具体的な使用例が探しても見つからなかったため、どう使うのかがわかりかねております。
現状  直線、長方形、円形、フリーハンド、テキスト入力等のツールは完成しています。
PolyBezier関数は
void __fastcall PolyBezier(const TPoint* Points, const int Points_Size, int StartIndex = 0);
と定義されていて、引数の
const TPoint* Points
に何を設定するとよいのかがいまいちよくわからないといったところです。
完成しているツールの引数はint型で指定すればいいものばかりだったので。。。

もしもご存知の方がおられましたら、使用例などをご教授していただけるととても有難いです。
質問の内容が足りないようでしたらどうぞご指摘ください。

VC++ではないですが問題ないと思います。
どうぞよろしくお願いいたします。


んー  2006-06-30 05:44:06  No: 62383

GDIなら
BOOL PolyBezier(
  HDC hdc,            // handle to device context
  CONST POINT* lppt,  // endpoints and control points
  DWORD cPoints       // count of endpoints and control points
);
だし
MFCなら
BOOL PolyBezier(
   const POINT* lpPoints,
   int nCount 
);
だし…

C++Builderのマニュアル読んでみては?

TPointってC++Builderでよくある独自定義のT〜なヤツじゃぁ…

>VC++ではないですが問題ないと思います。
根拠なく問題ないと思われてもなぁ…


んー  2006-06-30 05:50:12  No: 62384

ヘルプも読まずに見た感じで想像するなら
PointsにはTPoint(端点と制御点の座標を保持してる構造体?)の配列のアドレス
Points_Sizeには要素数,
StartIndexには描画開始する要素の開始位置
って感じだろうけど


んー  2006-06-30 06:03:46  No: 62385

表題よく読んでなかった
TCanvasってVCLだよね…?
DelphiかC++Builderの掲示板に行って聞いたほうがいいと思うけど。


カビ  2006-06-30 19:37:01  No: 62386

ご返答ありがとうございます。

まだまだ未熟者で  同じC++なのでたいした差異はないだろうと
タカをくくっていたのですがそうでもないみたいですね^^;
推測で話した部分もあり申し訳ありません。

Delphiの掲示板で質問してみようかと思います。
どうも有難うございました。


επιστημη  2006-06-30 20:10:19  No: 62387

コンパイラには大差なくともライブラリは大違い。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加