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


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0730
マミヤ扇形2解決


マミヤ

リンク

2006/7/30(Sun) 22:39:36|NO.1651

扇形を描く方法ってありませんか?
擬似的に、line命令でやってみたのですが、
予想通り、端の方がボロボロになってしまいます。
かといって分割回数を細かくしたくありませんし、

ゲームの効果に使いたいので、開く感じに描きたいのですが…



この記事に返信する


Drip

リンク

2006/7/31(Mon) 00:43:31|NO.1652

Dripです。

 マミヤさん、こんにちは。
確かに扇を描くのは標準命令では難しいですね。少し高度なテクニックになりますが、
APIを使用した扇の生成方法を以下に示します。

#module #uselib "gdi32.dll" #func CreatePen "CreatePen" int,int,int #func GetStockObject "GetStockObject" int #func CreateSolidBrush "CreateSolidBrush" int #func SelectObject "SelectObject" int,int #func Pie "Pie" int,int,int,int,int,int,int,int,int #func DeleteObject "DeleteObject" int #uselib "user32.dll" #func ReleaseDC "ReleaseDC" int,int //扇描画命令 fan //px,py,ex,ey=扇を円に見立てた座標(circle命令と同じ) //gox,goy=扇の開始点(無限直線座標で指定。半時計回り) //enx,eny=扇の終了点(無限直線座標で指定。半時計回り) //この命令は再描画スイッチがONの状態でも画面に反映されないので、実行後必ずredraw 1を使って再描画すること。 #deffunc fan int px , int py , int ex , int ey , int gox , int goy , int enx , int eny mref bmscr,67 col = bmscr(40) prm=px,py,ex,ey,gox,goy,enx,eny CreatePen 0,0,col : pen=stat if pen==0 : return -1 GetStockObject NULL_BRUSH : brush=stat if brush==0 : return -1 CreateSolidBrush col : brush=stat SelectObject hdc,pen : oldpen=stat SelectObject hdc,brush : oldbrush=stat Pie hdc,prm(0),prm(1),prm(2),prm(3),prm(4),prm(5),prm(6),prm(7) SelectObject hdc,oldpen SelectObject hdc,oldbrush DeleteObject brush DeleteObject pen ReleaseDC hwnd,hdc return 0 #global //■主な使用方法 color 128,128,128:circle 224,144,424,344 //影 color 255,220,200:fan 220,140,420,340 , 0,480,320,0 //扇1 color 255,255,120:fan 220,140,420,340 , 320,0,0,480 //扇2 color //グラフらしく文字を描画してみる pos 260,100:mes "地球の主な成分" tmp=42120,57986,45954,46466,45954 x="":wpoke x,0,tmp:pos 360,240:mes x repeat 4:wpoke x,cnt*2,tmp(cnt+1):loop pos 240,210:mes x k=0.0 repeat //回してみる redraw 0 color 255,255,255:boxf 500,300,600,400:color ,(cnt*16)\256 a=k:repeat 3 fan 500,300,600,400 , 550+sin(a)*100,350+cos(a)*100,550+sin(a+1)*100,350+cos(a+1)*100 a+=2.0944:loop redraw 1 k+=0.1 await 30 loop
少しパラメータの意味がわかりにくいかもしれませんが、その辺は試行錯誤で慣れてください。



マミヤ

リンク

2006/7/31(Mon) 09:55:54|NO.1658

わーありがとうございます。
まだちょっとよくわからないところがありますが、
ちゃんと扇形でも描くことが可能なのですね。



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