SRC質問掲示板Mk2
(現在 過去ログ32 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■5929 / inTopicNo.1)  円を描く方法
  
□投稿者/ 流時 -(2002/10/26(Sat) 20:54:31)
    Lineコマンドを使って特定の座標に円を描く方法はないでしょうか?
    PaintStringで○や●を描くのでは不都合な場面が出てきたので。
引用返信/返信 削除キー/
■5931 / inTopicNo.2)  Re[1]: 円を描く方法
□投稿者/ 幻魔の公子 -(2002/10/26(Sat) 21:32:52)
     幻魔の公子です。

     私の記憶が確かならば、点、a、bを中心とする半径cの円の公式は(x^2-a^2)+(y^2-b^2)=c^2だったかと思います。
     ですから、Forコマンドの組み合わせと、それを使って円上の座標を求め、可能な限り細かくそれらをLineコマンドで結んでやれば、円のように見えるかと思います。ある程度大きな円であれば、になってしまいますし、コマンドを組むのがかなり面倒そうですが(とりあえず、私は考えるの嫌です、と言っておきます。私が思いつかないだけで、簡単な方法はあるのかもですが……)、やるのであれば頑張って下さいませ。

     それでは。

引用返信/返信 削除キー/
■5935 / inTopicNo.3)  Re[1]: 円を描く方法
□投稿者/ schnee -(2002/10/26(Sat) 22:12:21)
    どうも、schneeです。
    SRC開発版(1.7.X系)には円の描画機能があります。
    そちらの機能を使用する事が最も簡単な方法かと。

    SRC安定版(1.6.X系)で実行するなら、
    幻魔の公子さんが仰っておられるように、for文を使う方法があります。
    その場合、三角関数を使えば簡単に描画できます。

    以上
引用返信/返信 削除キー/
■5936 / inTopicNo.4)  Re[1]: 円を描く方法
□投稿者/ GAMEMASTER -(2002/10/26(Sat) 22:15:07)
http://nagoya.cool.ne.jp/gamemaster/
     お初にお目にかかります。
     SRCユーザーの1人「GAMEMASTER」と申します。

    > Lineコマンドを使って特定の座標に円を描く方法はないでしょうか?
    > PaintStringで○や●を描くのでは不都合な場面が出てきたので。

     Lineコマンドよりは、Psetコマンドを使用してはいかがでしょう。


     For i = 1 To 十分大きな数

      Pset (中心のX座標 + 円の半径 * Cos(6.28 * i / 十分大きな数)) (中心のY座標 + 円の半径 * Sin(6.28 * i / 十分大きな数))

     Next


     数を大きくすればする程、描画に時間はかかりますが円は滑らかになります。

     なお、バージョン1.7系列の「開発版」には円を描画する「Circle」コマンドが用意されています。

     参考になれば幸いです。

     もう時間がないようでございますね。では、これにて退散させてもらいましょう。
解決済み!
引用返信/返信 削除キー/
■5937 / inTopicNo.5)  Re[2]: 円を描く方法
□投稿者/ 流時 -(2002/10/26(Sat) 22:17:42)
    PSetならいけるかも?と

    #(x, y) = (240, 240)の位置に半径100の円
    For Cx = 1 To 100
    ((Cx ^ 2 - 240 ^ 2) + (Cy ^ 2 - 240 ^ 2)) = 100 ^ 2
    PSet Cx Cy
    Next
    Refresh

    なんてやってみましたがダメでしたね…
    これだと((Cx ^ 2 - 240 ^ 2) + (Cy ^ 2 - 240 ^ 2))という左辺に100 ^ 2という右辺が入るだけのようで、画面左上に100ドットの横線がむなしく描画されました(笑



    ともあれ、素早い回答ありがとうございました。
引用返信/返信 削除キー/
■5938 / inTopicNo.6)  Re[1]: 円を描く方法
□投稿者/ 流時 -(2002/10/26(Sat) 22:24:34)
    幻魔の公子さんにレスを返している間に二つも回答が!
    開発版には目を通していなかったのでCircleコマンドの存在を知らず。安定版になるまでもう少し待つのも手ですね。
    GAMEMASTERさん、schneeさんありがとうございました。
解決済み!
引用返信/返信 削除キー/
■5947 / inTopicNo.7)  Re[1]: 円を描く方法
□投稿者/ ヒロキ -(2002/10/27(Sun) 00:33:12)
    こんばんは、ヒロキです。
    安定版で円を描くサブルーチンを即興で書いてみました

    よろしければ、参考までにどうぞ
    それでは

    # Call PaintCircle 中心のX座標 中心のY座標 半径 色
    PaintCircle:
    Local a b r c start_x start_y end_x end_y

    a = args(1)
    b = args(2)
    r = args(3)
    c = args(4)

    d2r = 3.1415926535 / 180

    start_x = a + r
    start_y = b

    For i = 1 to 360

    end_x = a + r * cos(i * d2r)
    end_y = b + r * sin(i * d2r)

    Line start_x start_y end_x end_y c

    start_x = end_x
    start_y = end_y

    Refresh

    Next

    Refresh
    Return
引用返信/返信 削除キー/
■5949 / inTopicNo.8)  Re[2]: 円を描く方法
□投稿者/ ヒロキ -(2002/10/27(Sun) 01:15:09)
    Psetコマンド使って描く方法も思いついたんでついでに載せときます。

    #てゆーか、ここの書き込み見るまでPsetコマンドの存在知りませんでした。

    # Call PaintCircle 中心のX座標 中心のY座標 半径 色
    PaintCircle:
    Local a b r c x y

    a = args(1)
    b = args(2)
    r = args(3)
    c = args(4)

    For x = 0 to r

    y = sqr((r - x) * (r + x))

    Pset (a + x) (b + y) c
    Pset (a + x) (b - y) c
    Pset (a - x) (b + y) c
    Pset (a - x) (b - y) c
    Pset (a + y) (b + x) c
    Pset (a - y) (b + x) c
    Pset (a + y) (b - x) c
    Pset (a - y) (b - x) c

    Refresh

    Next

    Refresh
    Return
引用返信/返信 削除キー/
■5986 / inTopicNo.9)  Re[3]: 円を描く方法
□投稿者/ 流時 -(2002/10/28(Mon) 02:26:16)
    さっそく試させていただきました。



    こ、こりゃすげえ!!(笑
    今まで知ったどんな方法よりもきれいに、かつ高速に円が描画されます。しかも段階的に。PSetを使うバージョンは、予想外の描かれ方にびっくりしました。
    解決済みにも関わらず、わざわざありがとうございました。
引用返信/返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

- Child Tree -
- Antispam Version -