www.pudn.com > jq_transfile.ARJ > BGI.PRG
*********************************************************
*
* Name: Bgi
* 此程序演示基本图形函数
*
*********************************************************
set talk off
set curs off
set path to ..
do LoadSDK
priv all like P_*
P_Color='B/W,W+/B,W/W,W+/B,W/B,W+/B,GR/W,W/B,N/W,W+/W'
=DefiWind("Demo",1,2,srows()-2,scols()-3,"colo &P_Color titl '图形函数演示'")
=ActiWind("Demo")
Demo_X1=C2X(1)
Demo_Y1=R2Y(1)
Demo_X2=C2X(wcol("Demo")-1)
Demo_Y2=R2Y(wrow("Demo"))
Demo_X=(Demo_X2-Demo_X1)/2+Demo_X1
Demo_Y=(Demo_Y2-Demo_Y1)/2+Demo_Y1
=DnRect(Demo_X1-1,Demo_Y1-1,Demo_X2+1,Demo_Y2+1)
do PixelDemo
if last()#27
do LineDemo
endi
if last()#27
do RectDemo
endi
if last()#27
do BarDemo
endi
if last()#27
do ElpDemo
endi
if last()#27
do SectorDemo
endi
=ReleWind('Demo')
retu
func RandNum
para LowLimit,HighLimit
retu LowLimit+rand()*(HighLimit-LowLimit)
*----------------------------------------------------------------------
func PixelDemo
=SetFillStyle(1,0)
=DrawBar(Demo_X1,Demo_Y1,Demo_X2,Demo_Y2)
for P_Counter=1 to 3000
P_X1=int(RandNum(Demo_X1,Demo_X2))
P_Y1=int(RandNum(Demo_Y1,Demo_Y2))
P_Color=int(RandNum(0,255))
=PutPixel(P_X1,P_Y1,P_Color)
if chrs()
exit
endi
endf
=inke()
retu
*----------------------------------------------------------------------------
proc LineDemo
priv all like P_*
=SetFillStyle(1,0)
=DrawBar(Demo_X1,Demo_Y1,Demo_X2,Demo_Y2)
for P_Counter=1 to 2000
P_X1=int(RandNum(Demo_X1,Demo_X2))
P_Y1=int(RandNum(Demo_Y1,Demo_Y2))
P_X2=Demo_X+(Demo_X-P_X1)
P_Y2=Demo_Y+(Demo_Y-P_Y1)
P_Color=int(rand()*255)
=SetColor(P_Color)
=DrawLine(P_X1,P_Y1,P_X2,P_Y2)
if chrs()
exit
endi
endf
if inke()=27
retu
endi
=inke()
retu
*------------------------------------------------------------------------
func RectDemo
priv all like P_*
=SetFillStyle(1,0)
=DrawBar(Demo_X1,Demo_Y1,Demo_X2,Demo_Y2)
for P_Counter=1 to 1000
P_X1=int(RandNum(Demo_X1,Demo_X2))
P_Y1=int(RandNum(Demo_Y1,Demo_Y2))
P_X2=Demo_X+(Demo_X-P_X1)
P_Y2=Demo_Y+(Demo_Y-P_Y1)
* P_X2=int(RandNum(Demo_X1,Demo_X2))
* P_Y2=int(RandNum(Demo_Y1,Demo_Y2))
P_Color=int(rand()*255)
=SetColor(P_Color)
=Rect(P_X1,P_Y1,P_X2,P_Y2)
if chrs()
exit
endi
endf
=inke()
retu
*------------------------------------------------------------------------
func BarDemo
priv all like P_*
=SetFillStyle(1,0)
=DrawBar(Demo_X1,Demo_Y1,Demo_X2,Demo_Y2)
for P_Counter=1 to 500
P_X1=int(RandNum(Demo_X1,Demo_X2))
P_Y1=int(RandNum(Demo_Y1,Demo_Y2))
P_X2=int(RandNum(Demo_X1,Demo_X2))
P_Y2=int(RandNum(Demo_Y1,Demo_Y2))
P_Color=int(rand()*255)
P_Style=int(rand()*11)
=SetFillStyle(P_Style,P_Color)
=DrawBar(P_X1,P_Y1,P_X2,P_Y2)
=SetColor(P_Color)
=Rect(P_X1,P_Y1,P_X2,P_Y2)
if chrs()
exit
endi
endf
=inke()
=SetFillStyle(1,0)
retu
*------------------------------------------------------------------------
func ElpDemo
priv all like P_*
=SetFillStyle(1,0)
=DrawBar(Demo_X1,Demo_Y1,Demo_X2,Demo_Y2)
for P_Counter=1 to 500
P_X=int(RandNum(Demo_X1+10,Demo_X2-10))
P_Y=int(RandNum(Demo_Y1+10,Demo_Y2-10))
P_RX=min(Demo_X2-P_X,P_X-Demo_X1)/2-5
P_RY=min(Demo_Y2-P_Y,P_Y-Demo_Y1)/2-5
P_RX=int(RandNum(0,P_RX))+10
P_RY=int(RandNum(0,P_RY))+10
P_RX=iif(P_RX<10,10,P_RX)
P_RY=iif(P_RY<10,10,P_RY)
P_Color=int(rand()*255)
=SetColor(P_Color)
=Ellipse(P_X,P_Y,0,360,P_RX,P_RY)
if chrs()
exit
endi
endf
=inke()
retu
*------------------------------------------------------------------------
func SectorDemo
priv all like P_*
=SetFillStyle(1,0)
=DrawBar(Demo_X1,Demo_Y1,Demo_X2,Demo_Y2)
for P_Counter=1 to 500
P_X=int(RandNum(Demo_X1+10,Demo_X2-10))
P_Y=int(RandNum(Demo_Y1+10,Demo_Y2-10))
P_RX=min(Demo_X2-P_X,P_X-Demo_X1)/2-5
P_RY=min(Demo_Y2-P_Y,P_Y-Demo_Y1)/2-5
P_RX=int(RandNum(0,P_RX))+10
P_RY=int(RandNum(0,P_RY))+10
P_RX=iif(P_RX<10,10,P_RX)
P_RY=iif(P_RY<10,10,P_RY)
P_A1=int(rand()*360)
P_A2=int(rand()*360)
P_Color=int(rand()*255)
=SetColor(P_Color)
=Sector(P_X,P_Y,P_A1,P_A2,P_RX,P_RY)
if chrs()
exit
endi
endf
=inke()
retu