投稿者 スレッド: 描画の際のLineの線の太さに関して教えてください  (Read 745 times)

kurasige_t

  • 新ユーザー
  • *
  • 投稿: 6
描画の際のLineの線の太さに関して教えてください
« 投稿日:: 2020年 11月 06日 , 午前 09:19:17 »
Tiny Basicの利用によって、私の専門としている河川のいろんな現象のシミュレーション結果を視覚化できて大変助かっております。
ただし、Lineコマンドでの線の太さをGdrawWidthコマンドで2とか3にして太くすると、点線や破線などもすべて実線になって表示されます。
私のPCのスクリーン仕様によるかもしれないのですが、なにか良い方法はないでしょうか。
若いころ(30年くらい前...)、VAXというコンピュータでXYプロッターを利用していた時は、点線や破線を描くプログラムを試行錯誤して作成していたことを思い出しましたが、そのような処理まで必要となるのでしょうか?
よろしくご指導願います。

takeuchi

  • 管理人
  • *****
  • 投稿: 85
Re:描画の際のLineの線の太さに関して教えてください
« Reply #1 投稿日:: 2020年 11月 07日 , 午前 12:21:33 »
こんにちは

>Lineコマンドでの線の太さをGdrawWidthコマンドで2とか3にして太くすると、
>点線や破線などもすべて実線になって表示されます。

申し訳ありません。

「GDrawStyleはGDrawWidth=1のときのみ有効」という仕様です。

これは,tbasicの開発に使用しているコンパイラの仕様ですので,仕方ありません。

解決策としては,速度を気にしなければ,自前で点線を書く Sub を作るということも考えられます。
例えば次のようなものではどうでしょうか。だいぶ手抜きですが,調整すれば使えるかもしれません。

GScreen(300,300)

DrawWidth=3
Call DrawDotLine(0,0,100,100,20)
End

Sub DrawDotLine(x0,y0,x1,y1,n)
   dx=(x1-x0)/n
   dy=(y1-y0)/n
   For i=0 To n Step 2
      x=x0+i*dx: y=y0+i*dy
      Line (x,y)-(x+dx,y+dx)
   Next i
End Sub



kurasige_t

  • 新ユーザー
  • *
  • 投稿: 6
Re:描画の際のLineの線の太さに関して教えてください
« Reply #2 投稿日:: 2020年 11月 07日 , 午前 04:38:38 »
Takeuchiさま
お忙しいなか、かくも早々とご指導いただき、本当にありがとうございます。
仕様の制約は、了解です。お示しいただいた点線描画の方法を下敷きにしてサブルーチンを作成してみます。
また、このような汎用ルーチンを利用者の皆さんと共有できると良いですね。
取り急ぎ、御礼まで。