投稿
おちゃめ ochame_nako
塗り潰した円や楕円を描画する命令CFILLを作りました。速度重視のプログラムなので1秒間に3600個くらい描画可能です。 使用方法などはコメントにて。
5そうだね
プレイ済み
返信[1]
親投稿
おちゃめ ochame_nako
書式はCFILL 中心のX座標,Y座標,横半径,縦横比率,色です。 縦横比率は1が正円で1未満の時は横長、1超の時は横長の楕円となります。 横半径、縦半径で指定しないのは正円が使いやすいのと形のイメージがしやすいためです。 ちなみにこのプログラムは速度重視であるためあまりキレイではないです。 あと横長の楕円よりも縦長の方が高速ですが、縦長と横長の場合を分けたものにすれば更なる高速化は可能です。
0そうだね
プレイ済み
返信[2]
親投稿
おちゃめ ochame_nako
これは昔ポケコン用として作ったものをプチコンmkII用に移植して、それをさらにプチコン3号に最適化したものです。 ちなみにFOR I=0 TO RとFOR I=-R TO 0はループ回数が同じですが、後者の方が高速です。 これはプチコンのFOR~NEXTにおいては終了値が常に評価されているためです。(変数よりも定数の方が高速ということ) 高速化重視といってもこれ以外は大したことはやっていません。
1そうだね
プレイ済み
返信[3]
親投稿
ヨッシー okkun2002
581CIRCLE/秒でした!
0そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
ヨッシーさんへ New3DSならばこれくらいの速度が出ます。
0そうだね
プレイ済み
返信[5]
親投稿
ヨッシー okkun2002
旧3DSとNEW3DSは速度が結構違うんですね。 あっ!旧3DSって書くの忘れてました
0そうだね
プレイ済み
返信[6]
親投稿
ヨッシー okkun2002
1028フレームかかったんで、かなり違うんですね。 何度も投稿すみません!
0そうだね
プレイ済み
返信[7]
親投稿
おちゃめ ochame_nako
ヨッシーさんへ 私の旧3DSは656フレーム、915CIRCLE/秒でした。 New3DSと旧3DSとの速度差は3~4倍なのでこんなもんだと思いますが、どこかリストの入力ミス等はないですか?
0そうだね
プレイ済み
返信[8]
親投稿
おちゃめ ochame_nako
塗り潰し円のプログラムは先日クッキーさんが投稿していたので試してみました。 私の方が高速ですがクッキーさんの方が描画かキレイですね。
0そうだね
プレイ済み
返信[9]
親投稿
ヨッシー okkun2002
誤字探してみたのですが見つかりません
0そうだね
プレイ済み
返信[10]
親投稿
おちゃめ ochame_nako
2つのGFILLは正しくはGLINEです。 あと16行のGLINEの3つ目の引数はX%+I%ではなくX%-I%です。 使い方の説明で「縦横比率は1が正円で1未満の時は横長、1超の時は横長の楕円となります。」は1超の時は縦長の誤りでした。
0そうだね
プレイ済み
返信[11]
親投稿
ヨッシー okkun2002
ああっなんて! ごめんなさい、分かりやすいところに気付かず... えーっと試してみたところ。 615フレーム 976CIRCLE/秒 でした。
0そうだね
プレイ済み
返信[12]
親投稿
おちゃめ ochame_nako
ヨッシーさんへ 正常に動作して何よりです。 私の旧3DS(ver.3.0.0)よりは少し高速ですね!
0そうだね
プレイ済み
返信[13]
親投稿
おちゃめ ochame_nako
楕円は要らないという人は引数のKを削り16行の「K*」も削れば正円専用になりますが秒間3800個くらいへと高速になります。
0そうだね
プレイ済み
返信[14]
親投稿
おちゃめ ochame_nako
ver.3.1.0はINC I%よりI%=I%+1の方が速くなってるので一部修正しました。 これにより1万回で166フレームから157フレームへと高速化しました。このアルゴリズムではこれがほぼ最速ですが別のアルゴリズムではこの2倍くらいの速さのものが発表されているのでCFILLの速度面のアドバンテージはなくなりましたが。 まぁGRPに拘らないならば昨晩私が発表したSPCIRCLEは高速化したCFILLのさらに27倍といった超高速で表示可能です。
0そうだね
プレイ済み