連線并計算距離
fo:=sx-c
ft:=sx+c
pointx:=clickx
pointy:=clicky
setframe(1,rgb(255,0,0))
line(1,fo,sy,pointx,pointy)
line(1,pointx,pointy,ft,sy)
js:=js+35
mf:=int(int((((clickx-fo)**2+(clicky-sy)**2)**0.5+
((clickx-ft)**2+(clicky-sy)**2)**0.5)*100)/100+0.5)
if mf=321 | mf=319 then
mf:=320
end if
ms:=ms+1
其中:clickx、clicky-------鼠標指針到左邊界及上邊界的像素點數目;int()----取整函數。
在顯示圖標中輸入下列內容:“|m{ms}f1|+|m{ms}f2|={mf}”,并顯示適當區域,這樣程序運行時,只要在界面上任意點擊一些點,計算機會自動連接該點到兩定點的連線段,并計算該點到兩定點f1、f2的距離。學生可自己動手任意點擊,通過計算機演示比較,引導學生尋找規律,由學生總結發現規律,然后教師歸納,從而得出橢圓的定義:把平面內與兩個定點f1、f2的距離的和等于常數(大于|f1f2|)的點的軌跡叫做橢圓。這兩個定點叫做橢圓的焦點 ,焦點間距離叫做焦距。上述定值常數常用2a表示。焦距用2c表示,因此有2a>2c。
同時針對定義進一步提出問題:為什么2a一定要大于2c呢?如果a取不同的值,會得到什么樣的軌跡呢?接下去可利用authorware良好的交互性,繼續這樣設計:通過計算機提示用戶:“已知兩定點間距離2c=240,即c=120,接下來出現文本框讓你輸入a的任意值,計算機將依據你的值畫軌跡,但不一定是橢圓,如入不同的值將產生不同的響應。a可能大于120或等于120或小于120。程序設計
如下:
其中“numentry>=120&numentry<=240”群組圖標是限制畫軌跡的范圍,以防畫出的橢圓超出界面,“numentry<120” 群組圖標里放的是顯示圖標表示2a<2c時不能畫橢圓。在“numentry>=120&numentry<=240”群組圖標里放的是計算圖標其中內容如下:
畫橢圓
sx:=360
sy:=200
c:=120
a:=numentry
b:=(a*a-c*c)**0.5
j1:=0
ds:=0
x1:=0
y1:=0
setline(0)
setframe(1,rgb(0,0,200))
repeat with j1:=0 to 1257
ds:=j1/200
y2:=b*cos(ds)
x2:=a*sin(ds)
line(1,sx+x1,sy-y1,sx+x2,sy-y2)
x1:=x2
y1:=y2
end repeat
當a<c時,不能畫橢圓,a=c時,只能得到一條直線,a>c時,會得到一個橢圓。通過交互從而強調定義中兩長度的和必須大于焦距的長,即a必須大于焦距c的長,加深對橢圓定義的理解。
二、authorware函數作圖原理延伸
通上所述,authorware畫軌跡的原理是通過描點法,就是按照預定的方程去描點,就能得到所需的軌跡圖,比如拋物線的畫法和橢圓畫法原理一樣,程序如下:
設 置 初 值
sx:=360
sy:=200
x1:=-80
y1:=-0.016*(2*x1**2-5*x1+2)
setline(0)
setframe(1,rgb(0,0,200))
畫 線
x2:==x1+0.2
y2:=-0.016*(2*x2**2-5*x2+2)
line(3,sx+x1,sy+y1,sx+x2,sy+y2)
x1:=x2
y1:=y2
再 畫 線
if x2<80 then
goto(iconid@"畫線")
else
end if
再有:設a、b是線段的兩端點,其在坐標軸上移動,可以用line函數畫出所有的ab線段,用eraseicon函數擦除當前線段外的所有線段,使得在演示窗口只顯示當前線段。可以在authorware上放三個計算圖標,內容如下:
設 置 初 值
sx:=360
sy:=200
t1:=0
y1:=0
setline(2) --帶箭頭坐標
setframe(1,rgb(0,0,200))
line(3,360,350,360,20)
line(3,250,200,650,200)
setline(0)
setframe(1,rgb(0,0,255))
畫 線
1:=260-27*t1
x2:=0
y2:=-50*t1
line(3,sx+x1,sy+y1,sx+x2,sy+y2)
t2:=t1+0.0013
t1:=t2
擦 除
eraseicon(iconid@"s")
if t1<2.8 then
goto(iconid@"s")
else
end if
同理雙曲線運動軌跡的畫法一樣,請感興趣的朋友試試。
三、利用authorware制作轉動的立方體
只要你深入研究authorware還可畫更為復雜的函數圖像,只要你熟練掌握authorware函數功能和良好的數學功底。下面利用authorware制作轉動的立方體,整個程序流程圖如下:
其中“賦值”計算圖標內容為:
setframe(3, rgb(0,0,250))
x0:=400
y0:=1000
a:=5
b:=260
判斷圖標屬性設置如下:
“作圖”計算圖標內容為:
x:=x+1
x1:=200*cos(x/50)
y1:=200*sin(x/50)
x2:=200*cos(x/50+pi/2)
y2:=200*sin(x/50+pi/2)
x3:=200*cos(x/50+pi)
y3:=200*sin(x/50+pi)
x4:=200*cos(x/50+3*pi/2)
y4:=200*sin(x/50+3*pi/2)
line(3,x0+x1,(y0-y1)/a,x0+x2,(y0-y2)/a)
line(3,x0+x2,(y0-y2)/a,x0+x3,(y0-y3)/a)
line(3,x0+x3,(y0-y3)/a,x0+x4,(y0-y4)/a)
line(3,x0+x4,(y0-y4)/a,x0+x1,(y0-y1)/a)
line(3,x0+x1,(y0-y1)/a,x0+x1,b+(y0-y1)/a)
line(3,x0+x2,(y0-y2)/a,x0+x2,b+(y0-y2)/a)
line(3,x0+x3,(y0-y3)/a,x0+x3,b+(y0-y3)/a)
line(3,x0+x4,(y0-y4)/a,x0+x4,b+(y0-y4)/a)
line(3,x0+x1,b+(y0-y1)/a,x0+x2,b+(y0-y2)/a)
line(3,x0+x2,b+(y0-y2)/a,x0+x3,b+(y0-y3)/a)
line(3,x0+x3,b+(y0-y3)/a,x0+x4,b+(y0-y4)/a)
line(3,x0+x4,b+(y0-y4)/a,x0+x1,b+(y0-y1)/a)
接下來你可以運行一下看看效果,一個旋轉的立方體就展現在你面前了,雖然“作圖”計算圖標內容較多,但原理很簡單,相信大家都能看懂。
authorware函數功能強大,只要你善于挖掘,完全可以畫出更為復雜的軌跡圖形,這里我也不再贅述,希望本文對你有所啟發,挖掘authorware強大的函數功能,開發出交互性更好、更科學、更準確的教學軟件。
注:以上程序在計算機上調試過,請放心使用。
新聞熱點
疑難解答