トピック
PianoRider pianorider
円の描画
17そうだね
プレイ済み
返信[1]
親投稿
三角関数を使って良いのなら三角関数を使うのが一番簡単だと思います。 ACLS VAR OX=(中心のX座標),OY=(中心のY座標) VAR I=360 WHILE I  I=I-1  GLINE OX,OY,OX+(円の半径)*COS(RAD(I)),OY+(円の半径)*SIN(RAD(I)) WEND 3号しか持っていないのでBIGで動くかは分かりません。
2そうだね
未プレイ
返信[2]
親投稿
はる HARUHI-0913
サインコサインを使う方法なら、 FOR I=0 TO 359 GLINE 円の半径*COS(RAD(I)),円の半径*SIN(RAD(I)),円の中心のX座標,円の中心のY座標 NEXT でできると思います。
2そうだね
プレイ済み
返信[3]
親投稿
しんしん manashi3
https://goo.gl/3m0vhO プチコンの三角関数についてはこのサイトが分かりやすいですよ!
1そうだね
プレイ済み
返信[4]
親投稿
こりんご KORINGO
GCIRCLEという選択肢…
2そうだね
プレイ済み
返信[5]
親投稿
PianoRider pianorider
>>こういちさん ありがとうございます!思った通りの動きができました^^ ここでRNDが使われるとは意外でした。私にはちょっと早かったのかもしれません。
2そうだね
プレイ済み
返信[6]
親投稿
(一瞬間違えたかと思ってしまった。) RAD()は60分法の角度を弧度法に変換する関数です。弧度法については…またの機会に。 まぁ角度の単位です。
1そうだね
未プレイ
返信[7]
親投稿
PianoRider pianorider
>>はるさん コメントをありがとうございます。 教えていただいた通りに打ってみましたが、こうなってしまいました。 打ち間違えてしまったかもしれません。。
2そうだね
プレイ済み
返信[8]
親投稿
個人的な話ですが、 僕、実は三角関数って習ったばかりなんです。 逆三角関数は来年習うらしいです。 プチコンでの三角関数の使い方はMIKIさん(NNID ifconfig)のくらゲーで数日前に学びました。かなり読みやすかったです。
1そうだね
未プレイ
返信[9]
親投稿
PianoRider pianorider
>>しんしんさん ありがとうございます! ブックマークしたので、後ほどじっくり読んでみます♪
0そうだね
プレイ済み
返信[10]
親投稿
PianoRider pianorider
>>こりんごさん GCIRCLEで妥協しようかと・・・くじけそうになって、ミーバースに泣きつきました(笑) なかなかゲーム作りまで行きつかないので、しばらくはグラフィック画面で遊ぼうかと思っています♪
2そうだね
プレイ済み
返信[11]
親投稿
PianoRider pianorider
>>こういちさん MIKIさん、以前くらゲー作っていましたね。 後で私もじっくり読ませていただきます♪
0そうだね
プレイ済み
返信[12]
親投稿
みなつ tksm372
おおお、色の変化が素敵ですね~(*´▽`*) 三角関数は、角度をラジアンで指定すると「原点(0,0)を中心」に描かれた「半径1の円上」の「X座標(COS)とY座標(SIN)」を教えてくれる、って覚えてました(・'ω'・) ラジアンは、「半径1のケーキを、ある角度でカットしたときの、ケーキの弧の部分の長さ」で表す方法です(←わかりにくいわー! 半径1のケーキの円周は2πなので、360度は2πラジアン、1度なら2πを360等分した2π/360(=π/180)ラジアンになるのですねー(・'ω'・) 私は甘いものは好きなのですが、ケーキはあんまりいっぱい食べられないので、π/2ラジアンくらいでいいです♪(←それでもでかいっ
1そうだね
プレイ済み
返信[13]
親投稿
はる HARUHI-0913
間違えました。 すいません。 正しくは FOR I=0 TO 359 GLINE 円の半径*COS(RAD(I))+円の中心,円の半径*SIN(RAD(I))+円の中心,円の中心のX座標,円の中心のY座標 NEXT です。
1そうだね
プレイ済み
返信[14]
親投稿
PianoRider pianorider
>>(甘いもの好きの)みなつさん ありがとうございます☆ いえいえ、解りやすいですよ! まだ完全ではありませんが、何度も読めばきっと理解できると思います。 もうすぐホワイトデーですね^^ 甘いものをいっぱい召し上がってくださいませw
1そうだね
プレイ済み
返信[15]
親投稿
PianoRider pianorider
>>はるさん いえいえ、とんでもございません^^ 帰宅したら打ち込んでみますね~ありがとうございます♪
0そうだね
プレイ済み
返信[16]
親投稿
PianoRider pianorider
そうそう。 なぜRNDなんて出てくるのか??と思ったら・・・ RAD(ラジアン)でしたw そりゃそうですよね~失礼しました。 m(。≧Д≦。)m
0そうだね
プレイ済み
返信[17]
親投稿
はる HARUHI-0913
↑のに自分が書いたのは急いで書いたのでわかりづらかったかもしれません。 なのでここにわかり易くしたのを書いておきます。 FOR I=0 TO 359 GLINE 円の半径*COS(RAD(I))+円の中心のX座標,円の半径*SIN(RAD(I))+円の中心のY座標,円の中心のX座標,円の中心のY座標 NEXT
2そうだね
プレイ済み
返信[18]
親投稿
試しにRAD()をRND()に変えてみたら正方形みたいになりました。 ちなみにA=RND(I)として RAD(I)をAに変えたら円になりました。 不思議だ。
1そうだね
未プレイ
返信[19]
親投稿
Oskar oskar_liebig
混乱するかもしれないけど、あえて書いてしまう。 三角関数が蛇やサソリやゴキブリのように嫌いなひと向けに(絶対違う)、ブレゼンハムのアルゴリズム(正確にはその応用)ってのがあって、不思議なことにかけ算とたし算だけで円が描けてしまう。 なぜこれで円が描けるのか理解するのはたぶん三角関数よりも難しいけど(自分も説明できん)、訳わからん関数が大嫌いなら、調べてみても面白いかも。
1そうだね
プレイ済み
返信[20]
親投稿
PianoRider pianorider
>>はるさん 教えていただいた通りに打ち込んで、円が描けました♪ ありがとうございました^^
1そうだね
プレイ済み
返信[21]
親投稿
PianoRider pianorider
>>こういちさん 私もRNDにしてみたところ、VSYNCを入れるとカッコいいエフェクトのような動きと共に、このような画像が出来上がりました! 宇宙空間をワープする場面などで使えそうな感じでした♪
5そうだね
プレイ済み
返信[22]
親投稿
PianoRider pianorider
>>Oskarさん ほうほう!それは興味深いですね。 今は三角関数を理解するため頑張っていますが、機会があったらその方法も調べてみますね。
0そうだね
プレイ済み
返信[23]
親投稿
みなつ tksm372
ピアさんのRNDのやつ、かっこいいですね(゜◇゜) Oskarさんの書き込みを見て、私も円を描く方法思いついたよーヽ(´▽`)ノ FOR Y=0 TO 239 FOR X=0 TO 399 DX=X-200:DY=Y-120:RR=DX*DX+DY*DY IF RR>80*80 && RR<100*100 THEN GPSET X,Y,RGB(0,0,RR/60) NEXT NEXT ブレゼンハムさんのとは違って超効率悪いです(*ノノ) でも、太いのが描けます(≧∇≦)b
4そうだね
プレイ済み
返信[24]
親投稿
PianoRider pianorider
みなつさんっ! オオーw(*゚o゚*)w 一瞬で理解されたのですね!!ホントにジーニアスでございます☆ VSYNCを入れると上から表示されていきました。面白い~♪
2そうだね
プレイ済み
返信[25]
親投稿
みなつ tksm372
あ、ブレゼンハムさんの方法は、こないだたまたま見ただけで、ちゃんと理解できてません(/ω\)イヤン
1そうだね
プレイ済み
返信[26]
親投稿
PianoRider pianorider
いまプレゼンハムさんをググりウィキペディアを開いたところ・・・ あまりの難解さに「じっくり読むのは次回にしよう」と、そっとページを閉じたピアなのでした・・・。 (๑╹ω╹)
1そうだね
プレイ済み
返信[27]
親投稿
こりんご KORINGO
最初に浮かんだ方法は三平方の定理を利用した座標出しだったけど、ルートとか速度遅くなりそうで…( ̄▽ ̄;)←数学力が中学生レベル(笑) r二乗-x二乗=y二乗で地道にx=x+1繰り返したら…できるんかな?試してないけど…( ̄▽ ̄;)
2そうだね
プレイ済み
返信[28]
親投稿
PianoRider pianorider
>>こりんごさん 私の数学力はそれ以下でございます! うふ♪(* ̄ー ̄)v ぜひその方法で試してみてください、イラスト作画の息抜きにでも~♪(ならないかしらw) 勉強って楽しい!ということに、気づいたときにはすでにオジサンだったのでしたw でもまだまだ頑張ります☆
2そうだね
プレイ済み
返信[29]
親投稿
おちゃめ ochame_nako
三平方の定理を使って塗りつぶし円を描画するCIRCLEFILL命令を作りました。 CIRCLEFILL 中心のX座標 , 中心のY座標 , 半径 , 縦横比 , 色コード と記述します。 縦横比に1を指定した時は円ですが、1以外を指定した時には楕円となります。 1~8行はベンチマーク風にランダムに塗りつぶし円を描画するプログラムです。 プチコンBIGならば1秒間に1万回以上描画が可能です。 シンプルながらそこそこ速いアルゴリズムです。(最速アルゴリズムだとプログラムもそれなりに長くなるし複雑になる)
2そうだね
プレイ済み
返信[30]
親投稿
ブレゼンハムので円を書くのは、 ・1/4の円を描画するアルゴリズム(残りの位置は計算結果の符号反転した値を原点から計算) ・最初は原点+半径の位置に描画 ・次に書こうとしてる点の位置(縦側か横側かナナメ側か)の原点からの距離が、円の半径と比べて差が少ないところに描画 ・半径と比べる式は、中学数学の範囲でいろいろ式を展開して求めてる って感じで動いてるので、そんな感じで説明をみてみるといいかもです。 ( 円が r^2=x^2+y^2 を満たすって習うのは高校だったかも? ) 直線のほうとあわせて応用すればドラクエ3の戦闘突入シーンのような円形で切り替わる方法とかできそうかもです。
2そうだね
プレイ済み
返信[31]
親投稿
PianoRider pianorider
>>おちゃめさん そのまま打ち込んでみました。 一瞬何が起こったのかと思いましたw もの凄い高速で円(楕円を含む)を自動で生成するプログラムなのですね!高度すぎて私には全く理解できませんが。。 ありがとうございました^^
1そうだね
プレイ済み
返信[32]
親投稿
PianoRider pianorider
>>たんじぇさん 詳しい説明をありがとうございます^^ 今はあまり理解できませんが、いつか読み返すときがくると思いますので、そのときまた熟読させていただきます!
0そうだね
プレイ済み
返信[33]
親投稿
PianoRider pianorider
コメントや共感をくれた方々、ありがとうございました! 私には少し早い内容だった気がしますがw 後になってきっと力になると思います。 これにて〆させていただきます♪
1そうだね
プレイ済み