Avatar billede tlund Nybegynder
01. oktober 2001 - 17:42 Der er 1 kommentar

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.dk



Kildekoden:

<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>
Avatar billede das_fizz Nybegynder
03. august 2004 - 09:24 #1
du kan vel bare lave en installation med programmet "package and development" mener jeg det hedder. og det ligger i vb
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester