プチコン3号 SmileBASIC コミュニティ返信[20]親投稿MIKI ifconfig2016/7/31 12:41いや、存在します。 くぼんだとこでは円の内角<2πで、鞍形点(馬の鞍のような形、山と山の間の峠道とか)では円の内角>2πになります。 てことは、くぼんだとこから鞍形点まで移動する間には、どこかに内角=2πとなる点があるはず(局所的かもですが)。あと微分可能という前提がつくかな。 2そうだね プレイ済み2017/11/03 12:20:50に取得
プチコン3号 SmileBASIC コミュニティ返信[28]親投稿MIKI ifconfig2016/7/31 11:10評価ありがとうございます。 > グラフィックを表示した状態、というがやり方 load"grp0:ファイル名" などで読み込んだ状態とか、他のツールで描いた状態とか要はどこかのグラフィック画面に何かが描かれていれば、X ボタン連打でどれかが表示されると思うので、それが対象になります。 >ダイレクトモードに任意の画像が表示されてる状態 その通りなんですが、うまくいきませんでした??? >切り取った画像はどういう感じで表示 Yボタンを押した時のカーソル左上の場所に読みます。読んでから位置決めの方がいいかな??? >両方読みこみ なるほど。圧縮形式じゃなければ grp としてロード、でいいですか? 0そうだね プレイ済み2017/11/03 18:02:21に取得
プチコン3号 SmileBASIC コミュニティ返信[8]親投稿MIKI ifconfig2016/7/31 9:21あらら~~~~~~ なるほど、そのネーミングはそういうことか・・・ 1そうだね プレイ済み2017/11/03 12:21:15に取得
プチコン3号 SmileBASIC コミュニティ返信[16]親投稿MIKI ifconfig2016/7/31 1:16> 91*4=364 > ジョーカーを足して365 一体いつからジョーカーが 1 だと錯覚していた?? 2そうだね プレイ済み2017/11/03 12:20:50に取得
プチコン3号 SmileBASIC コミュニティ返信[15]親投稿MIKI ifconfig2016/7/31 1:13うぎゃ~さん ワロタwwwww >ATANがなぜ(Y, X)の順なのか 一引数の場合 atan(y/x) でしょ? / を , に変えただけ2そうだね プレイ済み2017/11/03 12:20:50に取得
プチコン3号 SmileBASIC コミュニティ返信[10]親投稿MIKI ifconfig2016/7/31 0:24一周=360度とか地球でしか通用しない田舎ルールだから、宇宙人に見せたら確実に 「WT(検閲済み)!?!?!」 とか言われますね。 6.28 (2π)にしとけば 「OH! IC!! NICE TO MEET U!!」 とか言ってハグされます。 ただし角度がπ基準で、一周=2πなどと表記されるのは秘密にしといた方がいい3そうだね プレイ済み2017/11/03 12:20:52に取得
プチコン3号 SmileBASIC コミュニティ返信[6]親投稿MIKI ifconfig2016/7/30 23:56なんと!! 失われたアークがこんなところに!?!?4そうだね プレイ済み2017/11/03 12:20:52に取得
プチコン3号 SmileBASIC コミュニティ返信[32]親投稿MIKI ifconfig2016/7/30 23:16お、ちゃんと二次元FFTだってわかってましたね!! すばらしい!!! >G2%=G% これだとG2% とG%が同じ実体になってしまうのでは?? var g2%[len(g%)] で0に初期化された g2% が手に入るような気がします。 0そうだね プレイ済み2017/11/03 20:27:56に取得
プチコン3号 SmileBASIC コミュニティ返信[29]親投稿MIKI ifconfig2016/7/30 23:01g% は IWR に入れます。 IWI には g% と同じ長さで、要素は全て 0 の配列を入れます。 でもまだ話は途中なんですよ。 高度SUについてくる FFT/IFFT は、一次元の複素数配列が対象なんですね。ところが画像というのは、二次元じゃないですか。 てことで、ちくわさんは 二次元版の FFT/IFFT を自作する必要があるのです。0そうだね プレイ済み2017/11/03 20:27:56に取得
プチコン3号 SmileBASIC コミュニティ返信[26]親投稿MIKI ifconfig2016/7/30 22:50あ、ごめん FFT する都合で、幅も高さも2のべき乗じゃないとだめなんだった。 gsave 0,0,512,256,g%,1 でお願いします。 0そうだね プレイ済み2017/11/03 20:27:56に取得
プチコン3号 SmileBASIC コミュニティ返信[25]親投稿MIKI ifconfig2016/7/30 22:47あの世経由の方が圧倒的に速いからです。 メモリを多く使い速度を上げる手法。 gspoit でループをまわすと遅くなります。 var g%[0] gsave 0,0,400,240,g%,1 でいいんじゃないかなあ?? 0そうだね プレイ済み2017/11/03 20:27:56に取得
プチコン3号 SmileBASIC コミュニティ返信[23]親投稿MIKI ifconfig2016/7/30 22:36プチコンでの複素数の表し方が分かったところで次に進みます。 FFT は現実の配列をあの世送りし、 IFFT はあの世の配列をこの世に連れ戻す操作だと思ってください。 画像にフィルタを適用する方法は以下の通り。 1. 入力画像配列を FFT する(あの世送りする) 2. フィルタ係数配列(ガウシアンとかラプラシアンとか)をFFTする(あの世送りする) 3. 1であの世送りされた配列と、2であの世送りされた配列を、要素ごとに掛け算する(結果はやはりあの世の配列) 4. 3で計算したあの世の配列を IFFT でこの世に連れ戻します。 5. 4の結果の OWR が「入力画像にフィルタを適用した画像」になります。 なお、この世だけでちまちまちまちまちまちまと計算すれば同じ結果が得られます。ではなぜわざわざこんな面倒な手続きを踏んであの世この世を行き来するのかというと、 0そうだね プレイ済み2017/11/03 20:27:56に取得
プチコン3号 SmileBASIC コミュニティ返信[22]親投稿MIKI ifconfig2016/7/30 22:13了解です。配列はコンピュータ用語だから数学では習いません。 では納得できなくてもいいから、以下を覚えてください。 1. FFT と IFFT は複素数の配列を入力として与えると、同じサイズの複素数の配列を返します。 FFT のヘルプ見ると FFT OWR, OWI, IWR, IWI とありますよね。この IWR, IWI が入力となる配列で、IWR[0] と IWI[0] が 0 番目の複素数 z0 を表します。IWR[1] と IWI[1] は 1 番目の複素数 z1 を表します。これは数学とは関係ないただの smilebasic での決まりなので、暗記事項となります。 同様に、FFTした結果は OWR と OWI 配列に返り、OWR[0] と OWI[0] が結果の複素数 z'0 を表し、 OWR[1]とOWI[1] がz'1を表します。0そうだね プレイ済み2017/11/03 20:27:56に取得
プチコン3号 SmileBASIC コミュニティ返信[20]親投稿MIKI ifconfig2016/7/30 21:49ちくわさんは中学生?? それとも小学生かな??0そうだね プレイ済み2017/11/03 20:27:56に取得
プチコン3号 SmileBASIC コミュニティ返信[18]親投稿MIKI ifconfig2016/7/30 21:41複素数って習いました? a + b*i (i=虚数単位 = √-1) まあ習ってなくても大丈夫。 数直線は習いましたよね? 1 とか 0 とか -√2 とか、全ての数は数直線上の一つの点で表せます。 複素数は、平面上の一つの点で表せる数です。 a + b*i という複素数は、平面座標のなかで x=a, y=b という一つの点で表せる数なのです。 面倒な理屈はどうでもいいのですが、一つの複素数を表すのに、二つの数a と b が必要だということを覚えてください。 プログラム言語によってはこの複素数を一つの変数で表せるものがあります。 でもプチコンでは複素数型という変数は無いので、 一つの複素数を表すには二つの実数型変数が必要になります。 1そうだね プレイ済み2017/11/03 20:27:56に取得
プチコン3号 SmileBASIC コミュニティ返信[16]親投稿MIKI ifconfig2016/7/30 21:12それはよかった!! ただ高度SU用のプログラムは存在しないので、これから書かなければならないという・・・ ちくわさん、やりかた教えたら自分でかけますか?0そうだね プレイ済み2017/11/03 20:27:57に取得
プチコン3号 SmileBASIC コミュニティ返信[14]親投稿MIKI ifconfig2016/7/30 20:58これは FFT 使うんですけど、高度サウンドユニットは持ってますか? 持ってるならそれ使えばかなりはやくなるはず。 無ければ basic で書いた fft 使いますが、その場合は上記の時間(140秒)かかります。0そうだね プレイ済み2017/11/03 20:27:57に取得
プチコン3号 SmileBASIC コミュニティ返信[3]親投稿MIKI ifconfig2016/7/30 20:53現世代とは今見ている画面 gspoit で読んでくる画面のこと。 それとは別に var g%[240,400] という次世代用の配列を用意します。 例えば周囲4画素と自分自身の平均だったら g%[y,x] = (gspoit(x,y-1)+ gspoit(x-1,y)+ gspoit(x,y)+ gspoit(x+1,y)+ gspoit(x+1,y+1)) / 5 みたいな計算を全画素について計算してから (もちろん正しくは R G B ごとに計算します) gpset x,y,g%[y,x] をすればいいのです。 0そうだね プレイ済み2017/11/03 12:21:26に取得
プチコン3号 SmileBASIC コミュニティ返信[1]親投稿MIKI ifconfig2016/7/30 20:17フィルタかける時は、現世代の画素はいじったらうまくいきません。 現世代の画素を読んで、演算結果を次世代用の配列に設定し、 一画面分処理が終わったらおもむろに次世代用の配列をグラフィック画面にコピー(gload)します。 0そうだね プレイ済み2017/11/03 12:21:26に取得