プチコン3号 SmileBASIC コミュニティトピックVSYNC 38 NZMKN10382015/11/28 22:43:13質問塗り潰し円のアルゴリズムについて、教えてください。 他のページからCOPYする方法しか分からない…1そうだね 13返信プレイ済み2017/11/03 18:32:27に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿みむ*mim hidemimtp2015/11/28 22:48GCIRCLEしてGPAINTする詳しいやり方?0そうだね プレイ済み2017/11/03 18:32:27に取得
プチコン3号 SmileBASIC コミュニティ返信[2]親投稿VSYNC 38 NZMKN10382015/11/28 23:00はい0そうだね プレイ済み2017/11/03 18:32:27に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿みむ*mim hidemimtp2015/11/28 23:06特にややこしくはないと思いますが、 中心の座標をX,Y、半径をRとすると、 GCIRCLE X,Y,R,#RED などで円を描き、その中を塗るのは、 GPAINT X,Y,#RED でできます。 (知りたいことと違ってたらすみません)0そうだね プレイ済み2017/11/03 18:32:27に取得
プチコン3号 SmileBASIC コミュニティ返信[4]親投稿MIKI ifconfig2015/11/28 23:23以前れいさんが作ってましたね。 key=4K33K4A3 https://miiverse.nintendo.net/posts/AYIHAAAEAAArVRTiUNVJZg 0そうだね プレイ済み2017/11/03 18:32:27に取得
プチコン3号 SmileBASIC コミュニティ返信[5]親投稿MIKI ifconfig2015/11/28 23:26みむさん 既に絵が描いてある所に円の塗りつぶしの話でしょう。 0そうだね プレイ済み2017/11/03 18:32:27に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿ネタバレツララ LongIceSword2015/11/29 2:04三平方の定理を応用して FOR I=-R TO R-1 R1=SQR(POW(R,2)-POW(I+.5,2)) X1=X-R1+.5 X2=X+R1-.5 GLINE X1,Y+I,X2,Y+I,#RED NEXT っていう感じに座標計算する方法ありますけど、アルゴリズムを知りたいってことはこういう事ですか?0そうだね プレイ済み2017/11/03 18:32:27に取得
プチコン3号 SmileBASIC コミュニティ返信[7]親投稿おちゃめ ochame_nako2015/11/29 6:23すでに描いている場所へのGCIRCLE、GPAINTによる塗りつぶし円描画であればまずは画面上で使用していない色でGCIRCLEで一旦描画してその未使用色を境界としてGPAINTを行いその後で本来の描画色でGCIRCLEを行えば問題なく描画ができます。0そうだね プレイ済み2017/11/03 18:32:27に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿MIKI ifconfig2015/11/29 20:01おちゃめさん その「画面上で使用していない色」はどうやって見つけるんですか? 0そうだね プレイ済み2017/11/03 18:32:27に取得
プチコン3号 SmileBASIC コミュニティ返信[9]親投稿おちゃめ ochame_nako2015/11/30 5:59円の描画範囲にあるドットをGSPOITで調べて使われてない色を判断するという方法を採るならば別ページに描いてGCOPYで転送する方が簡単だし効率的です。 しかし、例えば「自分で塗りつぶし円を使ったお絵かきソフトを作る」というのであればこの色は使わないという色を決めてそれを境界色に設定することが可能になります。 この方法だとRGB32階調(32768色)のうちどれか1つが使えなくなるという問題がありそうですが、これは普通は使わないARGBが0,0,0,0以外でアルファチャンネル値が0の色を設定すれば問題ありません。 私が作ったお絵かきソフト「PETIT PAINT QSP」はこの方法によってQSPという短さでQSPとしては極めて高品質なペンを60fpsの高速描画で処理することが可能になっています。さらに描画範囲を示すカーソル機能も付けることができました。0そうだね プレイ済み2017/11/03 18:32:27に取得
プチコン3号 SmileBASIC コミュニティ返信[10]親投稿VSYNC 38 NZMKN10382015/11/30 16:28コメント遅くなりました。 皆さん沢山の回答を有難う御座います。 今回は疑似半透明処理が使えるツララさんの 方法を使わさせて頂きます。 エアブラシ的な表現が出来ました!0そうだね プレイ済み2017/11/03 18:32:27に取得
プチコン3号 SmileBASIC コミュニティ返信[11]親投稿ネタバレツララ LongIceSword2015/11/30 19:34あ、やっぱりGPAINT使わないドット単位で指定する方法が知りたかったのね。 ちなみにG系命令で指定するドットの座標は少数で指定してもエラーにならないけど、小数点以下切り捨ての整数が有効な値になるよ。GPSET .5,.5はGPSET 0,0みたいに。 でも実際に座標を算出する計算では少数使わないと誤差がとんでもないことになるから、ちょっとややこしいですよね。 今回は円だったけど、応用すれば楕円や、多角形も細かい三角形に分割してとかでGLINEとFOR文で走査線描画みたいなこと出来るよ。0そうだね プレイ済み2017/11/03 18:32:27に取得
プチコン3号 SmileBASIC コミュニティ返信[12]親投稿おちゃめ ochame_nako2015/12/1 23:48塗り潰し円のアルゴリズムは多数あるのですが自分がやりたいことができるならばどれを使っても良いと思います。 インターネットが存在してなかった昔だったら自力でアルゴリズムを見つけ出すという必要性がありましたが、今だったらネット検索するだけですぐに様々なものが見つかります。 それぞれメリットやデメリットがあります。 比較的短いものを求めているならば三平方の定理を使った方法はオススメですね。0そうだね プレイ済み2017/11/03 18:32:27に取得
プチコン3号 SmileBASIC コミュニティ返信[13]親投稿ネタバレおちゃめ ochame_nako2015/12/1 23:52ツララさんへ 私がプチコンmkII用に作ったポリゴン表示プログラムではGLINEを使った塗りつぶし三角形描画ルーチンを自前で作り実現しました。 プチコン3号ならばGTRIが使えるのでポリゴン表示が楽になりましたね。(速度重視ならばスプライトによる任意三角形描画を行ったポリゴン表示の方が有利ですが)1そうだね プレイ済み2017/11/03 18:32:27に取得