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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0802
可憐綺麗な回転ができません(ギザギザしてしまう)3解決


可憐

リンク

2015/8/2(Sun) 01:54:35|NO.70406

現在仮想ウィンドウにある文字列を回転するサンプルを作成しておりまして
綺麗な回転ができません
何故かギザギザしてしまいます。
下記の記事を参考にして真似したのですがもうお手上げ状態です。
綺麗な回転を実現させたいです。


http://hsp.tv/play/pforum.php?mode=pastwch&num=11071






screen 0,200,100 : title "コピー元"
boxf
color 255,255,255 : pos 45,35 : font "メイリオ",w5 : mes "テスト文字列"


; テストの為アンチエイリアスの部分を白で塗潰す
repeat 100
PPosy=cnt
repeat 200
pget cnt,PPosy
if (ginfo_r=0)&(ginfo_g=0)&(ginfo_b=0) : continue;: color 255,255,255 : pset cnt,PPosy
if (ginfo_r!255) {
color 255,255,255 : pset cnt,PPosy
}

loop
loop


screen 1,500,500 : title "コピー先"
repeat
color 255,0,0 : boxf
gmode 2,200,100
;gcopy 0
pos mousex,mousey
grotate 0, 0,0, rad, 200,100
counter+1 : rad = 0.1*counter ; 回転角度
wait 10
loop



この記事に返信する


スペース

リンク

2015/8/2(Sun) 02:12:02|NO.70407

雑なプログラムですがこんな方法も。
簡単に説明すると、

大きめの文字を用意し、一時バッファに回転して描画。
それをgzoomのハーフトーンありで縮小してメインウィンドウに描画する、

という物です。

xx=4 w5=40 screen 0,200*xx,100*xx : title "コピー元" boxf color 255,255,255 : pos 0,0 : font "メイリオ",w5*xx : mes "テスト文字列" screen 1,250*xx,250*xx : title "一時バッファ" gmode 2,200*xx,100*xx ; テストの為アンチエイリアスの部分を白で塗潰す repeat 100 PPosy=cnt repeat 200 pget cnt,PPosy if (ginfo_r=0)&(ginfo_g=0)&(ginfo_b=0) : continue; color 255,255,255 : pset cnt,PPosy if (ginfo_r!255) { color 255,255,255 : pset cnt,PPosy } loop loop screen 2,500,500 : title "コピー先" repeat mx=mousex:my=mousey color 255,0,0 : boxf gsel 1 color 255,0,0 : boxf pos double(250*xx)/2.0,double(250*xx)/2.0:grotate 0, 0,0, rad, 200*xx,100*xx gsel 2 pos mx-125,my-125 gzoom 250,250,1,0,0,250*xx,250*xx,1 counter+1 : rad = 0.1*counter ; 回転角度 wait 10 loop



GENKI

リンク

2015/8/2(Sun) 20:33:17|NO.70413

リンク先にあるようにhspcv.asを使うのはダメなんでしょうか。
他の選択肢としてArtlet2Dモジュールもあります。
しかしどうしても標準命令だけしか使用できない理由があるのでしたら、スペースさんの方法が簡単で良いと思います。



可憐

リンク

2015/8/3(Mon) 22:12:39|NO.70446

GENKI 様

標準命令だけしか使用できない理由はないのですが
標準命令だけで終わらせようと先走って見ても無理だと分かったので
Artlet2Dを使いました



スペース 様

ありがとうございます。
ほぼギザギザがないくらいの完璧な物にしたかったので
色々苦戦しましたがなんとかできました。
ありがとうございます。


標準命令を使うのとArtlet2Dを使うのではここまでも差があるのだと初めて知り勉強になりました。
結果出来たのですが、斜度を入れるとなるとまた難易度がものすごく上がるのだと思いました。。
実行画像が何かの参考になればと、、画像を置いておきます。


GENKI 様、スペース 様 ありがとうございました

【標準命令の場合】

http://gyazo.com/3421261e80f7bdd172b2abafdbb846c8

【Artlet2Dを使った場合】

http://gyazo.com/9daed310e6e4683638efd10a7e49a910


【標準命令とArtlet2Dの比較】

http://gyazo.com/054899a1899cd8bf5b7a74260632fffd



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