HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0306
HSPのたまごうずまきを描くには?7解決


HSPのたまご

リンク

2015/3/6(Fri) 07:50:07|NO.67719

HSPでうずまきを描くにはどのような方法がございますか?
よろしくお願いします。



この記事に返信する


スペース

リンク

2015/3/6(Fri) 10:20:59|NO.67720


間隔=5.0//増やすほど狭く 長さ=500 粗さ=10//増やすほどカクカク dd2(0)=0 dd2(1)=0 repeat 長さ dd = cos(deg2rad(ii))*(cnt/間隔),sin(deg2rad(ii))*(cnt/間隔) redraw 1 line 200+dd2(0),200+dd2(1),200+dd(0),200+dd(1) redraw 0 dd2(0)=dd(0) dd2(1)=dd(1) ii+粗さ loop



FunnyMaker

リンク

2015/3/6(Fri) 10:35:09|NO.67721

渦巻きと聞いて一番最初に想像するのは「アルキメデスの螺旋」でしょうか。


screen 0, 600,600, 0 title "Archimedes's spiral" #const double a 3.0 #const N 10 ;巻数 #const double notch deg2rad(1.0) ;角度刻み color : boxf theta = 0.0 pos 300,300 ;line 命令のための下準備 color 255,255,255 redraw 0 repeat m_pi*2*N/notch line 300 + a*theta*cos(theta), 300 + a*theta*sin(theta) theta += notch loop redraw 1

他にも「放物螺旋」,「双極螺旋」等あります。
wikipedia等で調べてみると面白いんじゃないでしょうか。



HSPのたまご

リンク

2015/3/8(Sun) 11:15:42|NO.67754

スペースさん
FunnyMakerさn
ありがとうございます!

理想としては、こんな画像作りたくて、おふたりのコードをいろいろアレンジしてみたんですがうまくいきませんでした。

https://www.google.co.jp/search?q=%E6%B8%A6%E5%B7%BB&safe=off&espv=2&biw=892&bih=594&source=lnms&tbm=isch&sa=X&ei=m6_7VJ_SL-PtmQXxj4LQAg&ved=0CAYQ_AUoAQ#imgrc=ry4IkjDHRK7S1M%253A%3BpoVjEzsfBcr6QM%3Bhttp%253A%252F%252Fwww.h7.dion.ne.jp%252F~kagaku%252Fwhirlillusion%252Fwhirl02.gif%3Bhttp%253A%252F%252Fwww.h7.dion.ne.jp%252F~kagaku%252Fwhirlillusion%252Fwhirl.html%3B460%3B460

よろしかったらアレンジの方法を教えて頂けますでしょうか?
よろしくお願い致します。



FunnyMaker

リンク

2015/3/8(Sun) 15:35:55|NO.67757

こういうことですか?


screen 0, 600,600, 0 title "Archimedes's spiral multi version" #const double a 32.0 ;「ピッチ / π」 の値 #const nLoop 2 ;巻数 #const nSpring 6 ;螺旋の本数 #const double dθ deg2rad(1.0) ;描画角度刻み #const double dφ m_pi*2/nSpring ;螺旋の生える角度の刻み color : boxf color 255,255,255 redraw 0 repeat nSpring φ = dφ*cnt θ = 0.0 pos 300,300 ;line 命令のための下準備 repeat m_pi*2*nLoop/dθ line 300 + a*θ*cos(φ+θ), 300 + a*θ*sin(φ+θ) θ += dθ loop loop redraw 1



スペース

リンク

2015/3/8(Sun) 16:20:54|NO.67758

>>HSPのたまごさん

単純に線の数増やせばいいんじゃね?とか甘く考えてましたが、いざつくろうとなるとなかなか面倒・・・
なので渦巻きの画像を回転させる、という方法はどうでしょうか?

画像はgrotateで回転することが出来ます。
ただし、アンチエイリアスが適用されないため少しぎざぎざになります。
gzoomで数倍に拡大したものを回転→gzoomでアンチエイリアス(ハーフトーン)ありで縮小とすることで、
結構綺麗に回転することができるかと。

線が非常に細いため、回転時に一部消えてしまっています。
太い線を描けばいいのですが、そういうプログラムを持ち合わせていないため即席のものしか作れませんでした・・・

Screen 1,500,500 間隔=5.0//増やすほど狭く 長さ=3000 粗さ=1//増やすほどカクカク 太さ=10 渦巻き数=3 dd2(0)=0 dd2(1)=0 repeat 長さ ct2=cnt OposX = cos(deg2rad(ii))*(cnt/間隔) OposY = sin(deg2rad(ii))*(cnt/間隔) line 250+OposX,250+OposY,250+OposXb,250+OposYb /*repeat 太さ//太くすることはできるけど、改善の余地あり。 line 250+cnt+OposX,250+OposY,250+cnt+OposXb,250+OposYb line 250+OposX,250+cnt+OposY,250+OposXb,250+cnt+OposYb loop*/ OposXb = OposX Oposyb = Oposy ii+粗さ await loop Screen 0,500,500 pos 250,250 color 255,255,255 gmode 4,500,500,255 repeat 渦巻き数 grotate 1,0,0,deg2rad((360.0/渦巻き数)*cnt),500,500 await 100 loop



スペース

リンク

2015/3/8(Sun) 16:24:35|NO.67759

あれ?別の方が先にソースコード貼ってくれてた(´・ω・`)
圧倒的にFunnyMakerさんのほうが短く判りやすく簡素ですね・・・



HSPのたまご

リンク

2015/3/9(Mon) 07:46:02|NO.67766

FunnyMakerさん
スペースさん

うまく行きました!!!
そしてとても勉強になりました。
ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.