Hej jeg er igang med at lave et program til at tegne forskellige former for grafer til min skriftlige matematikopgave.. Jeg har et formentlig simpelt problem..
Mit problem er i updater(), kun den første sande if-sætning bliver udført.. Jeg vil gerne have alle sande betingelser til at blive udført.. da den skal omplacere alle aktive grafer når jeg zoomer. Håber i kan hjælpe
Det må du forklare nærmere. Som koden ser ud nu, kan ingen af de tre udtryk i 'updater' afvikles, da de tre variabler 'graphActive', 'eulerActive' og 'feulerActive' ikke kan ses inde fra funktionen, da de ikke er globale.
sorry, jeg kan godt se at man ikke kan danne et fuldt billede ud fra dette.. men jeg har så meget (og lidt rodet) kode.. jeg har erklæret variablerne længere oppe:
var graphActive = false; var eulerActive = false; var feulerActive = false;
function makeGraph(){ graphActive = true; var fx = document.getElementById("function").value; var x = -(enhed*10); var y = 0; var prevy = 0; var ident = 0; var prevident = 0; var pointspace = 0; while(x<=enhed*10+1){ y=-(eval(fx))*20/enhed; y=Math.round(y); //y afrundes til fordel for grafens visning, men kan nu ikke bruget i en tabel.
Denne del virker som den skal: if(zoomindex==0){enhed=0.5;} if(zoomindex==1){enhed=1;} if(zoomindex==2){enhed=2;} if(zoomindex==3){enhed=5;} if(zoomindex==4){enhed=10;} if(zoomindex<0){zoomindex=0;}
Hvis de tre variabler er sande, vil de tre betingelser i 'updater' være opfyldt - og de tre udtryk vil derfor blive afviklet. Fejlen ligger et andet sted =)
hvis man klikker på vis graf kan man zoome. det samme gælder hvis du kun klikker på vis euler. men hvis du klikker på både vis graf og vis euler zoomer den kun for grafen.
brug zoom ind, da zoom ud kun virker under nogle omstændigheder
Min browser melder fejl ligegyldigt, hvad jeg prøver at klikke på. Du sidder vel ikke og prøver at lave JavaScript med fejlmeddelelser slået fra i IE - eller uden at kikke i fejlkonsollen i Firefox?
Jeg har godt set fejlene, men indtil nu har det virket alligevel, fejlkonsollen i firefox giver ikke nok detaljer til at jeg kan finde fejlene og rette dem.. Nu får jeg stress, det skal være klar til i overmorgen, virkede det ikke bare lidt hos dig?
hvad vil det sige når fejlkonsollen skriver: document.getElementById("fgraph"+ident) is null
jeg har løst det ved at kigge på browsernes fejlrapporter som du sagde.. det var en while-løkke der rullede en tand for langt og som derfor prøvede at tilgå elementer som ikke var oprettet.. formentlig det denne fejl også kan betyde: "document.getElementById("fgraph"+ident) is null", ikke?
det er min første post her på eksperten.dk... Hvordan får du dine point?
Betyder at det element du prøver at finde, ikke eksisterer eller ikke blev fundet. Prøv at skrive variablerne ud efterhånden som du skal bruge dem, fx: alert("ident: "+ident);
så kan du se om dine variable bliver tildelt værdier.
Tak det er godt at vide.. nu funker det hele også her:-) bedst i FF3. IE7 viser funktion-grafen meget underligt, dette skyldes vidst overløb.. er der nogen der ved hvordan man omgår det?
For det første har du nogen vilde værdier af 'pointspace', som resulterer i alle de warnings, du får i FF, og som siger noget i retning af "Fejl i tolkningen af 'top'. Erklæring droppet.". Værdien af pointspace kommer f.eks. op på 6*10^23 - hvilket ikke giver mening i udtrykket: if(pointspace>0){ document.getElementById("fgraph"+prevident).style.height=pointspace+'px'; }
Derudover har du ged i dine løkker. Enten dem, der laver elementerne eller dem, der sætter dimensioner. Jeg fik fjernet fejlene ved at ændre nogle løkker: while(x<=enhed*10){
- og denne her i 2'eren og 3'eren: while(xpoint<400){
Som sagt fjernede det fejlen, men den kan ligeså godt bestå i, at du har lavet et element for lidt(?)
if (confirm("Vil du se flere alerts?")) alert(pointspace) else break;
- så du kan se, hvor stor pointspace bliver. Confirm'en har jeg sat ind, da du ellers skal køre tusindvis af alerts igennem - eller ind og lukke browseren i TaskManager ;o)
Synes godt om
Ny brugerNybegynder
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.