- ベストアンサー
直線を描く
A4用紙に縦に細い直線を描きます 線と線の間の幅をランダムにしたいのですが、どのような命令をしたらよいのでしょうか 初歩的な質問ですみませんが教えてください
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
下記コードでは、プリンター・オブジェクトのScaleModeがミリメートルに設定されているとして間隔が1mm~5mmで長さ40mmの縦線が20本引かれます Dim i As Long Dim R As Single Dim X As Single '乱数ジェネレータの初期化 Randomize CLng(Format(Now, "ssnnhh")) '最初の位置 X = 10 '20本縦線を描画 For i = 1 To 20 '描画 Printer.Line (X, 10)-Step(0, 40) '次のX位置を計算 Rは1.0~5.0の値になる R = (Rnd(1) * 4# + 1#) X = X + R Next i
その他の回答 (3)
- usokoku
- ベストアンサー率29% (744/2559)
>というのは線分間の幅のことです >直線幅は常に同じで線分間の幅が広かったり狭かったり という内容ですが、 「直線幅」と「線分間の幅」意味が解釈できません。 「直線間の距離」というのであれば、直線は平行になります。しかし、線分が平衡に存在するのか、平衡でない線分の場合に、線分のどの点からの距離を意味しているのでしょうか。 「幅」という言葉を使っている限り私では理解できません。 距離又は座標という概念を使ってください http://kids.gakken.co.jp/jiten/2/20019920.html http://www.auemath.aichi-edu.ac.jp/mtc/ecase/e021.htm http://www.h4.dion.ne.jp/~zero1341/t/03.htm http://www5d.biglobe.ne.jp/~tomoya03/shtml/algorithm/Intersection.htm なお、間隔という概念も有ります。 http://yosshy.sansu.org/3tobun.htm 「直線幅」、直線は無限長さですから、描く直線の太さを意味すると解釈できます。 「線分間の幅」は理解できません。線分間の距離ですと、先に上げた定義で2つの線分のもっとも近い点の距離になります。2つの線分が平行か平行でないか、を判断する必要がありますが、「平行な線分」を描くソフトはお持ちのようですので、平行になっていない線分の可能性があります。
お礼
ありがとうございました
- DreamyCat
- ベストアンサー率56% (295/524)
質問内容を理解できないのですが 単に上式のstepの0の代わりに もうひとつ別の乱数を入れるだけでは? Step(乱数, 40)
お礼
ありがとうございました
- usokoku
- ベストアンサー率29% (744/2559)
VB6.0なので、他のバージョンでしたらば無視してください。 描画する線の幅は、DrawWidth プロパティで設定します (x2, y2) 必ず指定します。描画の終了点の座標を示す単精度の値です。 (x1, y1) 線または四角形の描画の開始点の座標を示す単精度の値です。 が、ヘルプメッセージからのコピーですが >線と線の間の幅を は、線分A-Bと平行な線分C-Dが存在するときの、線分間の距離ですか それとも、線が描かれているときの空白部分(線の太さを変えて空白の大きさを変える)のですか それとも、他の意味で使っているのでしょうか。 質問文からは、意味が読み取れませんでした。
補足
質問内容に不足があり申し訳ございません まず、Ver6.0です 等間隔で平行線を描くプログラムは日常使っております 今回質問したかった 幅をランダムに というのは線分間の幅のことです 直線幅は常に同じで線分間の幅が広かったり狭かったり という線を描きたいです よろしくお願いします
お礼
ありがとうございます 頂いた回答を参考にさせて頂き 望むものを描くことが出来ました 本当に助かりました m(__)m