トップページ > 過去ログ > 記事閲覧
DrawLineについて
名前:しお 日時: 2008/09/30 00:14

 DrawLineについて質問お願いします。 パソコン画面の中心に、三角関数を使って、 円の中心を通過するように数本の線を引き、 円を描いたようにしたいのですが、 DrawLineは左上と右下で線を引くので中心を 定めることができません。  よって、左上隅にイチョウ型は描けましたが、 それを真ん中に持ってくることができません。 なにかいい方法はございませんか? 三角関数を使わずにfor文のみでやる方がよいのでしょうか。

Page: 1 |

Re: DrawLineについて ( No.1 )
名前:キーチック 日時:2008/09/30 05:20

先に中心点を決めておいて,回転角θと(θ+180°), 半径rを考えて2点を決定すれば良いだけではないかと思います.
Re: DrawLineについて ( No.2 )
名前:しお 日時:2008/10/02 14:44

返答ありがとうございます。 大変申し訳ないんですが、もう少し詳しく教えてください。 先に中心を定めるということは可能なのでしょうか。 x1、y1で左の座標を決めて、x2、y2で右の座標を決め、 間に線が入るだけではないのでしょうか。
Re: DrawLineについて ( No.3 )
名前:キーチック 日時:2008/10/02 21:44

別に左とか右とか限定するわけではなく,始点と終点と考えると思います. で,DrawLineの機能ではなく,それをどう使うかという数学の話なのですが, >パソコン画面の中心に、三角関数を使って、 >円の中心を通過するように数本の線を引き、 >円を描いたようにしたい ということでしたので,中心点(cx,cy)が決まっているのかなと. そのうえで,中心を通る直径の両端は,半径をrとして,PC画面座標で (cx+r cos(θ),cy-r sin(θ)) (cx+r cos(θ+180°),cy-r sin(θ+180°)) となりますので,(ですよね?) この2点を始点と終点に指定すれば,円の直径が画面上に描画されることになります. θを適切にとり,C言語のプログラミングでは弧度法で[°]ではなく[rad]という単位を 使用していることに注意すればOKです.
Re: DrawLineについて ( No.4 )
名前:しお 日時:2008/10/04 22:56

本当にありがとうございます。無事解決しました。 もうひとつ聞きたいことがあるのですが、よろしいでしょうか。 このDrawLineをミシン線のように表示することは、可能でしょうか?
Re: DrawLineについて ( No.5 )
名前:さかな 日時:2008/10/06 20:21

>このDrawLineをミシン線のように表示することは、可能でしょうか? 残念ながら、DXライブラリにはそのような機能は無いようです。以下のようなプログラムでどうでしょうか? void DrawLineEx(int sx,int sy,int ex,int ey,int l1c,int l2c,int lnm){ DrawLine(sx,sy,ex,ey,l1c); int dx,dy; dx=(ex-sx)/lnm; dy=(ey-sy)/lnm; for(int i=0;i<lnm;i+=2){ DrawLine(sx+dx*i,sy+dy*i,sx+dx*(i+1),sy+dy*(i+1),l2c); } } (sx,syには始点座標、ex,eyには終点座標、l1c,l2cにはそれぞれの線の色、lnmには色が変わる回数を入れてください)
Re: DrawLineについて ( No.6 )
名前:しお 日時:2008/10/08 01:17

ありがとうございます。試してみます。

Page: 1 |