hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
Paint/line - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

小ワザ|フィル

ライン

サンプル

FOR HSP2.61

+  実線描画サンプル

実線を引く命令はHSPに既にlineという命令がありますが、問題は終点の確定していない直前の線をどう消すか。

背景色に合わせてlineを上書きと言う考えが最初に浮かびますが問題があります。
どういう問題なのか、それは是非一度やってみてください^^;
実際私も最初にそれをやって失敗したためにgcopyを用いる方法を考え付きましたから・・・。

でアルゴリズムとしてはフィルと同じで線を描画する前に選択範囲のイメージをバッファにコピーしてから線を引きます。
そして新たな選択範囲に線を引く前のバッファにコピーする前に以前コピーしたイメージを貼り付けて元通りにします。
それからコピー、それから線描画。これを繰り返します。

それから後処理としてlineはデバイス?の影響から始点か終点の1ピクセルだけ描画されないという問題があります。
その為に始点と終点にpsetで埋めています。

コメント

  • サンプルというよりこれは解答になりそうなくらい上出来なんですが…特にこの選択範囲を保存するという考えが…自分で言うのもなんですが^^; -- kz3 2005-10-31 12:53:42 (月)
    URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

サンプル

[hsp3]

+  APIを使用した点線

PS_DOT の数値を変えることにより、実践や波線が引けます。 MoveToEx? は、pos命令、LineTo?は、カレントポジションから指定座標まで線を引く命令。....Tnx kz3

コメント

  • さっhirokiさん、「点線」ページ作ったのでどうぞ*゚ー゚)r且~ -- kz3 2005-10-30 12:57:17 (日)
  • 僕はhsp2.61で書いてみようかな・・・。 -- kz3 2005-10-30 12:58:25 (日)
  • 急に言われても.....(>_<) -- hiroki? 2005-10-30 13:10:27 (日)
  • 時間のある時に^^;先のこっちでテストしてからPaintEt?に適用するといいかもですよ〜矩形は直線を4回描画で出来ますし^^ -- kz3 2005-10-30 13:44:46 (日)
  • 将来性を考えて、mode 付けました。 -- hiroki? 2005-10-30 14:20:56 (日)
  • 問題は斜線ですねーーー。(/_;) -- hiroki? 2005-10-30 14:22:01 (日)
  • kz3さんのスクリプトを参考に、APIで上のサンプルをテストしてますが、線を引いてくれない。(;_;) -- hiroki? 2005-10-31 09:04:20 (月)
  • APIで上のサンプル??線を引くAPIはLineTo?()関数ですよ〜 -- kz3 2005-10-31 12:38:58 (月)
  • API使うならCreatePen?でペンのスタイルを破線にしてLineTo?かPolylineで線を引けばokだと思います。 -- GENKI? 2005-10-31 21:42:08 (月)
  • 知ったような口ぶりで書いちゃいましたが、888さんとこの受け売りです。てもとにサンプルが…。 -- GENKI? 2005-10-31 21:42:38 (月)
  • そう、line をLineTo?に変えたり試してみていたときにパソコンが永眠したの。 -- hiroki? 2005-11-01 09:56:17 (火)
  • 永眠ってフリーズですか??^^; -- kz3 2005-11-01 09:58:50 (火)
  • 今まで、CPU押さえたり、マザーボード叩いたりして復旧させてきたけど、とうとう通用しなくなりました。 スクリプトをいじるのは新品XP機を買ってからになりそうです。 とほほ -- hiroki? 2005-11-01 13:01:37 (火)
  • ぇ、まじですか;ロ;。lineをLineTo?に変えただけでダメだったんですか??そんなに危険だったのかな・・・汗 -- kz3 2005-11-01 13:32:59 (火)
  • いやいや そのせいじゃないですよ。 そろそろ買おうかと迷っていたところ。 -- hiroki? 2005-11-01 13:42:45 (火)
  • あっ寿命がきたってことなんですね^^;(いかん、雑談になってしまった) -- kz3 2005-11-01 15:49:32 (火)
  • そう、雑談ページに書いたとおりです。 -- hiroki? 2005-11-01 16:00:26 (火)
  • あまりにも恥ずかしいから消しました。 今HSPいじれないから、あとよろしくね。 -- hiroki? 2005-11-02 07:52:35 (水)
    Everything is expanded.Everything is shortened.
      1
      2
      3
      4
      5
      6
      7
      8
      9
     10
     11
     12
     13
     14
     15
    
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    
        #const    PS_DOT            2
     
        x1=10:y1=200:x2=120:y2=200
     
        hbrush = GetStockObject(HOLLOW_BRUSH)
        hpen = CreatePen(PS_DOT,0,0)
        if hpen = 0: end
        hobj = SelectObject(hdc, hpen)
        hobj_ = SelectObject(hdc,hbrush)
        if hobj = 0: DeleteObject hpen: end
        MoveToEx hdc, x1, y1, 0
        LineTo hdc, x2, y2
        Rectangle hdc, 10,10,100,100
        hobj = SelectObject(hdc,hobj)
        DeleteObject hpen
  • いまだにlineの勉強をしていますが、何故か線を引いてくれません。 どうしてでしょうか。 ちなみにAPIの宣言はしております。 -- hiroki? 2005-11-07 (月) 16:42:51
  • 下のGENKIさんのを参考に、Polylineで引いてくれたけど、絶対LineTo?で実現するぞーー。 -- hiroki? 2005-11-09 (水) 08:52:40
  • どんな風に書いたら引けなかったのかな?上のは部分的だからなぁ・・・(というか#func入れるの面倒orz) -- kz3 2005-11-09 (水) 09:03:36
  • LineTo?MoveToEx?で点線引こうとしていますが、うまく引けません。 勉強不足です。 -- hiroki? 2005-11-09 (水) 09:48:10
  • MoveToEx?はhspのpos同様です。LineTo?は現在のカレントポジションから指定した座標に線を引いたあとにそこをカレントポジションにします。なので、□を書くときは最初の点だけMoveToEx?(あるいはposでも出来るかも)を使い、あとは4回LineTo?を呼べばOKだと思います。 -- kz3 2005-11-09 (水) 10:37:35
  • あ、□じゃなくて点線か・・・;; -- kz3 2005-11-09 (水) 10:49:39
  • 線が書けないんじゃ口も書けないと思い、線を...。 -- hiroki? 2005-11-09 (水) 11:55:07
  • 画面の描画のAPIは、仮想画面しか変わらないことが解り、redraw 1 とすることで解決し、また勉強になりました。お手数おかけしました。^^; -- hiroki? 2005-11-09 (水) 12:39:52
  • やっとアップできます。これを利用して、未完成のpaintを完成に近づけます。 -- hiroki? 2005-11-09 (水) 15:42:42

サンプル

[hsp3]

+  破線描画サンプル
  • 888さんのサンプルを参考に作成しました。正直理解していません。_| ̄|○
    HSP3はAPIが使いやすいですね。 -- GENKI

コメント


ポリライン

サンプル

コメント


モジュール

直線描画モジュールです。
破線描画や線の太さが変更できます。
ぶっちゃけ888さんのいろいろ線ひきモジュールをHSP3に移植したものです。
[hsp3]

+  直線モジュール

コメント

  • 太い直線がひきたくなったので移植してみました。 -- GENKI? 2008-03-22 (土) 15:51:03


添付ファイル:
filev2try_dragline.as
433件 [詳細]
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2008-03-22 (土) 15:51:03 (2087d)