Kommentar til forskellige funktioner!
Jeg skal lave en opgave i skolen hvor jeg skal skrive i kildekoderne til et lille program som kan tegne en graf og zoome etc! Altså i kildekoden skal der står hvad de forskellige ting gør!! Kildekoden har jeg indsat nederst som du kan se! For at programmet skal virke skal der bruges en fil som hedder java.class, men jeg kan desværre ikke vedlægge den da man vist ikke kan vedhæfte filer! Men jeg går udfra at min opgave kan løses uden! Ellers kan jeg mailes på thomas@lund-net.dkKildekoden:
<HTML>
<TITLE>Grafik-Demo</TITLE>
<Script Language=\"VBscript\">
Option Explicit
Dim xMin, xMax, yMin, yMax, w, h, dx, p, q, p1, q1, PI, e
\'Denne Sub tegner grafvinduet.
Sub Initialiser
Rens
xMin=-5: xMax=5: yMin=-5: yMax=5
w=699: h=349
graf_init
tick
End Sub
Sub graf_init
// Sammenhæng mellem skærmkoordinater (Sx,Sy)
// og sædvanlige koordinater (x,y).
// Rektanglet afgrænset af x=xMin, x=xMax, y=yMin og y=yMax afbildes på
// en grafisk skærm af bredde w og højde h. (Sx,Sy)=(0,0)
// er øverste venstre hjørne, mens (Sx,Sy)=(w,h) er det
// nederste højre hjørne.
// Sx = p*(x-xMin), Sy = q*(y-yMax)
// x = p1*Sx+xMin, y = q1*Sy+yMax
p= w/(xMax-xMin): q= -h/(yMax-yMin)
p1 = 1/p: q1 = 1/q
dx = (xMax-xMin)/w
End Sub
Sub Tick
// Denne rutine henter 5 gange i sekundet cursorens
// koordinater, og viser dem i et par tekst-felter.
Dim pause, Sx, Sy, x, y
pause=200 \'Enhed: milisekunder
Sx=document.graph.getX(): Sy=document.graph.getY()
x=p1*Sx+xMin: y=q1*Sy+yMax
xy.value=\"(\" & x & \" , \" & y & \")\"
setTimeout \"tick\",pause
End Sub
Sub HentPktr
\'NB: Det er skærmkoordinaterne, der vises her
Dim pp, Sx1, Sy1, Sx2, Sy2
pp=document.graph.ppGet
If pp<2 then
msgbox(\"Der er ikke afmærket to punkter\")
Exit Sub
End If
Sx1=document.graph.mouseX(pp-1): Sy1= document.graph.mouseY(pp-1)
Sx2=document.graph.mouseX(pp-2): Sy2= document.graph.mouseY(pp-2)
if Sx1>Sx2 then
Ombyt Sx1,Sx2
end if
if Sy1>Sy2 then
Ombyt Sy1,Sy2
end if
x1.value=Sx1*p1+xMin
y1.value=Sy1*q1+yMax
x2.value=Sx2*p1+xMin
y2.value=Sy2*q1+yMax
\'msgbox(\"Punkter:\" & chr(13)& \"(\" & Sx1 & \",\" & Sy1 & \") \" _
\' & \"(\" & Sx2 & \",\" & Sy2 & \")\")
End Sub
Sub Ombyt(x,y)
dim q
q=x
x=y
y=q
end sub
Sub Rens
document.graph.wipeinit
End Sub
sub FarveAendring()
Graf_Init
dim n
n=Tegnefarve.Selectedindex
if n=0 then
call Farve (255,0,0) \'Rød
elseif n=1 then
call Farve (0,255,0) \'Grøn
elseif n=2 then
call Farve (0,0,255) \'Blå
elseif n=3 then
call Farve (0,255,255)
elseif n=4 then
call Farve (255,0,255)
elseif n=5 then
call Farve (255,255,0)
end if
end sub
Sub Farve(r,g,b)
call document.graph.newcolor(r,g,b)
End Sub
Sub TegnGraf(f)
Dim x, x1, y1, Sx1, Sy1, x2, y2, Sx2, Sy2
if f=\"\" then Exit Sub
graf_init
x= xMin: x1= x: y1= eval(f)
Sx1= Round(p*(x1-xMin)): Sy1= Round(q*(y1-yMax))
for x=xMin+dx to xMax step dx
x2=x: y2=eval(f)
Sx2= Round(p*(x2-xMin)): Sy2= Round(q*(y2-yMax))
call document.graph.Line(Sx1,Sy1,Sx2,Sy2)
x1= x2: y1= y2
Sx1= Sx2: Sy1= Sy2
next
document.graph.draw
End Sub
\'Denne Sub styrer zoom-funktionen.
Sub Zoom
If x1.value=\"\" then
MsgBox \"Du skal først trykke \'Hent to punkter\'\"
else
Rens
xMin=x1.value: xMax=x2.value: yMin=y1.value: yMax=y2.value
Tegn()
end if
end sub
Sub Tegn
FarveAendring
TegnGraf(f.value)
TegnGraf(g.value)
TegnGraf(h1.value)
End Sub
</script>
<body onLoad=\"Initialiser\">
Cursor:
xy-koordinater:<input type=text name=\"xy\" size=45><br>
<input type=button value=\"Tegn graf\" OnClick=\"Tegn()\">
<input type=button value=\"Rens\" OnClick=\"Rens\">
<input type=button value=\"Zoom\" onClick=\"Zoom\">
<input type=button value=\"Hent to punkter\" OnClick=\"HentPktr\">
<APPLET CODE=\"JavaGrafik.class\" NAME=\"graph\" WIDTH=700 HEIGHT=350>
</APPLET><p>
<input type=button value=\"Default skærm\" OnClick=\"Initialiser\">
<table>
<tr>
<td>
x1-koordinat<input type=text name=\"x1\">
</td>
<td>
y1-koordinat<input type=text name=\"y1\">
</td>
</tr>
<tr>
<td>
x2-koordinat<input type=text name=\"x2\">
</td>
<td>
y2-koordinat<input type=text name=\"y2\">
</td>
</tr>
</table>
Tegnefarve
<select name=Tegnefarve onChange=\"FarveAendring\">
<option>Rød</option>
<option>Grøn</option>
<option>Blå</option>
<option>Turkis</option>
<option>Lilla</option>
<option>Gul</option>
</select>
<table>
<tr>
<td>
f(x)<input type=text name=\"f\"><input type=button value=f(x) OnClick=\"Tegn\">
</td>
</tr>
<tr>
<td>
g(x)<input type=text name=\"g\"><input type=button value=g(x) OnClick=\"Tegn\">
</td>
</tr>
<td>
h(x)<input type=text name=\"h1\"><input type=button value=h(x) OnClick=\"Tegn\">
</td>
</tr>
</table>
</body>
</html>
