| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Apr 2006
Beiträge: 27
| Mathematische Formel in AS Teil II
Hallo! Ich hatte schon Mal gepostet, weil ich Probleme damit hatte, komplizierte mathematische Formeln mit Hilfe von AS zu schreiben. Jetzt habe ich das geschafft eine Funktion zu erstellen, mit der ich z.B Indizen schreiben kann (siehe Beispiel). Was ich jetzt eigentlich schreiben möchte, ist folgende Funktion: Jn (x)=Sigma(0 bis unendlich) [(-1)hoch(k)*(x/2)hoch(n+2k) das ganze durch (k!)*(n+k)!]. Dann wird es ein bisschen schwieriger (Für mich als AS Anfänger:-)) Wer könnte mir bitte helfen mein Programm so zu ändern, damit ich die Funktion Jn(x) schreiben kann? Hier ist mein Beispiel: // Darstellung "Mathematischer Funktionen" //Festlegung unterschiedlicher Textformate var txtF1 = new TextFormat(); txtF1.font = "_serif"; txtF1.size = "16"; txtF1.color = "0x0000BB";txtF1.italic = true; txtF1.bold = true;txtF1.align = "left"; var txtFTief = new TextFormat(); txtFTief.font = "_serif"; txtFTief.size = "10"; txtFTief.color = "0x0000BB"; txtFTief.align = "right"; txtFTief.tief = true; /* Das war z.B ein Versuch von mir ! var txtFTief1 = new TextFormat(); txtFTief1.font = "_serif"; txtFTief1.size = "10"; txtFTief1.color = "0x0000BB"; txtFTief1.align = "right"; txtFTief1.tief1 = true;*/ //Deklaration der Arrays für die nachfolgenden Texterstellungen! var textInhalt = new Array(); var style = new Array(); var width = new Array(); //Methode, die durch die Erzeugung dynamischer Textfelder an der erwünschten // Position mehrere Textformate in einer Texteinheit zulässt MovieClip.prototype.genTextUnit = function(instanzName, tiefe, startposX, startposY, textArray, styleArray, widthArray){ for(i= 0; i<textArray.length; i++){ startposX = startposX+widthArray[i]; if(styleArray[i].tief == true) posY = startposY + 10; else posY = startposY; tiefe = tiefe+1; this.createTextField(instanzName+i, tiefe, startposX, posY, 0, 0); with(this[instanzName+i]){ autoSize = true; text = textArray[i]; type = "static"; selectable = false; // Textformat anwenden setTextFormat(styleArray[i]); // Eingebettete Schriften verwenden embedFonts = false; } } } // Genieriert Eingabefelder und Push- sowie CheckBox-Komponenten function erzeugeFelderButtons(){ //Berechungsgleichung von periodischen Signalen //Eingabe Text 1 2 3 4 5 6 7 8 9 10 11 12 13 textInhalt.push(" x","( )","t","=","A","1",".","cos(2\u03c0 )"," f ","1",".","t - \u03c6","1"); // 14 15 16 17 18 19 20 21 22 23 textInhalt.push("+","A","2",".","cos(2\u03c0 )"," f ","2",".","t - \u03c6","2"); //Eingabe Formate ! style.push(txtF1,txtF1,txtF1,txtF1,txtF1,txtFTief, txtF1,txtF1); style.push(txtF1,txtFTief,txtF1,txtF1,txtFTief,txt F1,txtF1,txtFTief); style.push(txtF1,txtF1, txtF1,txtFTief,txtF1,txtF1,txtFTief); //Eingabe Startpixels width.push(1,13,6,16,15,12,6,6,42,8,8,6,26); width.push(16,13,12,6,6,42,8,8,6,26); //Generierung der Texteinheit genTextUnit("xGleichung",level,110,125,textInhalt, style,width); level += textInhalt.length; } erzeugeFelderButtons(); Danke im Voraus für Eure Hilfe |
| | |
| | #2 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Jul 2003 Ort: Berlin
Beiträge: 283
|
Ist doch nicht all zu schwer. Du musst halt nur festlegen wann dein unendlich erreicht ist und das hängt ja wiederrum von der Verwendung der Funktion ab. Die Aufsummierung ist ja kein Problem mit einer while-Schleife. Als Abbruchkriterium kannst du ja einen von dir und für den Anwendungszweck festgelegten Wert nehmen an dem deine Unendlichkeit erreicht ist. Die Berechnung der Fakultät sollte ja auch kein Problem darstellen und dafür kann man eine extra Funktion festlegen. Im Forum findest du bestimmt schon eine vorgefertigte Funktion obwohl so etwas auch schnell selbst gemacht ist. x^y kannst du mit der Funktion Math.pow() berechnen. Nun viel Spass bei der Umsetzung...
__________________ ein mensch ohne macke ist kacke... |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Jul 2003 Ort: Berlin
Beiträge: 283
|
...ach so du willst die Formel formatiert darstellen... Das würde ich ganz anders angehen. Ich würde Objekte erstellen für die Darstellung von verschiedenen Mathematischen Gebilden. Z.Bsp. ein Objekt für die Darstellung einer Wurzel welches die einzelnen darzustellenden Parameter in empfang nimmt. Das Objekt selbst errechnet dann erst die Darstellung anhand der gegebenen Parameter. Wenn man nun für jedes denkbare Gebilde ein solches Objekt hat muss man nur noch eine Formatierung der Funktion festlegen um diese dann korrekt parsen zu können. Das ganze sollte sich auch nicht schwer umsetzen lassen...
__________________ ein mensch ohne macke ist kacke... |
| | |
| | #8 (permalink) |
| muh Registriert seit: Apr 2002 Ort: Freiburg / Stuttgart
Beiträge: 4.338
|
Hinter dem Link in der ersten Antwort steckt auch die Quelldatei, wie du selbst sagst, ist das garnicht so leicht, warum also das Rad neu erfinden?
__________________ »Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!) |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Apr 2006
Beiträge: 27
| aktueller Stand
Hallo noch Mal! Ich habe mir natürlich die Quelldatei des obigen Links angeschaut. Ich weiss nicht, wie man damit Indizen ( wie z.B Xi, mit i als Indiz ) schreiben könnte oder Sigma(von Null bis unendlich). Schaut Euch Mal an, was ich geschafft habe. Ich habe aber noch 2 Fehler bei Jn und Sigma, die ich noch nicht korrigieren konnte. Vielleicht kann mir jemand einen Tipp geben. Gruß und danke für Eure Antworten. // Darstellung "Mathematischer Funktionen" //Festlegung unterschiedlicher Textformate var txtF1 = new TextFormat(); txtF1.font = "_serif"; txtF1.size = "16"; txtF1.color = "0x0000BB";txtF1.italic = true; txtF1.bold = true;txtF1.align = "left"; var txtFTief = new TextFormat(); txtFTief.font = "_serif"; txtFTief.size = "10"; txtFTief.color = "0x0000BB"; txtFTief.align = "right"; txtFTief.tief = true; var txtFTief1 = new TextFormat(); txtFTief1.font = "_serif"; txtFTief1.size = "10"; txtFTief1.color = "0x0000BB"; txtFTief1.align = "right"; txtFTief1.tief1 = true; //Deklaration der Arrays für die nachfolgenden Texterstellungen! var textInhalt = new Array(); var style = new Array(); var width = new Array(); //Methode, die durch die Erzeugung dynamischer Textfelder an der erwünschten // Position mehrere Textformate in einer Texteinheit zulässt MovieClip.prototype.genTextUnit = function(instanzName, tiefe, startposX, startposY, textArray, styleArray, widthArray){ for(i= 0; i<textArray.length; i++){ startposX = startposX+widthArray[i]; if(styleArray[i].tief == true) posY = startposY + 10; else posY = startposY; if(styleArray[i].tief1 == true) posY = startposY - 7; else posY = startposY; tiefe = tiefe+1; this.createTextField(instanzName+i, tiefe, startposX, posY, 0, 0); with(this[instanzName+i]){ autoSize = true; text = textArray[i]; type = "static"; selectable = false; // Textformat anwenden setTextFormat(styleArray[i]); // Eingebettete Schriften verwenden embedFonts = false; posY = startposY; } } } // Genieriert Eingabefelder und Push- sowie CheckBox-Komponenten function erzeugeFelderButtons(){ //Berechungsgleichung von periodischen Signalen //Eingabe Text 1 2 3 4 5 6 7 8 9 10 11 12 13 textInhalt.push("J","n","( )","x","=","\u2211","k=0","\u221E","______________ __","(-1)","k",".","(x/2)"); // 14 15 16 17 18 19 20 21 22 23 textInhalt.push("n+2k","","","",""," ","","","",""); //Eingabe Formate style.push(txtF1,txtFTief,txtF1,txtF1,txtF1,txtF1, txtFTief,txtFTief); style.push(txtF1,txtF1,txtFTief1,txtF1,txtF1,txtFT ief1,txtF1,txtFTief); style.push(txtF1,txtF1, txtF1,txtFTief,txtF1,txtF1,txtFTief); //Eingabe Startpixels // 1 2 3 4 5 6 7 8 width.push(1,6,6,7,16,8,4,10,20,8,22,10,13); width.push(30,13,12,6,6,42,8,8,6,26); //Generierung der Texteinheit genTextUnit("xGleichung",level,110,125,textInhalt, style,width); level += textInhalt.length; //Berechnungsgleichung von linearen Verzerrungen textInhalt = new Array(); style = new Array(); width = new Array(); textInhalt.push("k!",".","(n+k)!","","","",""," "," ","","","",""); textInhalt.push("","","",""," ","","","","",""); style.push(txtF1,txtF1,txtF1,txtF1,txtF1,txtF1,txt F1,txtF1,txtF1); style.push(txtF1,txtF1red,txtF1red,txtFTiefred,txt F2red,txtF1red,txtFTiefred,txtFMultred); style.push(txtF1red,txtFTiefred,txtF2red,txtF1red, txtF1red,txtFTiefred); width.push(1,15,6,16,15,10,6,4,9,8,8,16,6); width.push(14,13,10,6,4,9,8,8,16,6); genTextUnit("yGleichung",level,220,145,textInhalt, style,width); level += textInhalt.length +1; } erzeugeFelderButtons(); |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |