扇形のリージョンの作成 – プログラミング – Home

扇形のリージョンの作成
 
通知
すべてクリア

[解決済] 扇形のリージョンの作成


あお
 あお
(@あお)
ゲスト
結合: 22年前
投稿: 45
Topic starter  

いつもお世話になっております。

質問ですが、扇形のリージョンを簡単に作成する方法はないのでしょうか?
関数には扇形のリージョンを作成するものがないようなのですが、
たとえば円のリージョンを作成して必要ないところを省いていくような
方法しかないのでしょうか?
単純な質問ですが、おわかりになる方がいらっしゃいましたら教えてください。


引用未解決
トピックタグ
PATIO
(@patio)
Famed Member
結合: 4年前
投稿: 2660
 

自分で座標計算をしてポリゴンで作成する手もあると思いますよ。
ある程度刻みで座標を計算すれば、それらしく見えると思います。
円形リージョンからいらない部分を外す方法とどちらが簡単なのは
かなり微妙ですけれど。
円形のリージョンとポリゴンリージョンを組み合わせて
ANDで合成する手も有りますよね。
いずれにせよ、ある程度の座標計算は必要だと思いますよ。


返信引用
Fackt
 Fackt
(@Fackt)
ゲスト
結合: 22年前
投稿: 8
 

Windows NT/2000系であればパス使用して
扇形リージョンの作成ができます。

CPaintDC dc(this);
dc.BeginPath();
dc.Pie(0,0,100,100, 0,0, 100, 100);
dc.EndPath();
CRgn rgn;
rgn.CreateFromPath(pDC);
dc.PaintRgn(&rgn);


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 24年前
投稿: 1421
 

デバイスコンテキストに扇形のパスを作っておいて、
PathToRegion(CRgn::CreateFromPath)で作るという手もありかも。


返信引用
あお
 あお
(@あお)
ゲスト
結合: 22年前
投稿: 45
Topic starter  

Fackt様・dairygoods様 お返事ありがとうございます。

Win98でも使用するのでパスは使えないんです。
リージョンに扇形がないのはマイクロソフトの手抜きですね。
作っていほしい…

PATIO様 お返事ありがとうございます。
やっぱり、どうあっても座標計算がいるんですね。

小さな三角形を複数組み合わせることで実行することにしました。
これが、一番やりやすいかったので。

みなさん、アドバイスありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました