Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Ich würde gerne, aber ich verstehe von deinem Code nicht allzu viel. Diese ganzen Variablennamen sind überhaupt nicht aussagefähig. Wenn du vielleicht mal mehr oder weniger Zeile für Zeile kommentieren könntest, was da überhaupt gemacht wird und wo *genau* dein Problem liegt, wird dir sicherlich viel schneller geholfen. Da du gerade eh nichts machen kannst außer auf eine Antwort warten, könntest du die Zeit nutzen, indem du den potenziellen Helfern mehr Informationen gibst. Dein Codeschnipsel schön und gut (und jetzt dank Formatierung auch halbwegs lesbar), aber das reicht nicht.
Du musst bedenken, dass die meisten hier wohl anderes tun, als Polynome zu Zeichnen. Ich musste erstmal überhaupt meine in den Ferien etwas eingestaubten Mathekenntnisse entstauben und auf vordermann bringen, bis mir einfiel, was ein Polynom ist und was ein Polynom 2-ten dritten usw Grades ist.
Konkrete Fragestellungen (die du dir eigentlich schon beim ersten Post selber hättest stellen und dann beantworten müssen):
Welchen Zweck haben die Variablen i, k, m, n, l, r, p, h, s, x und y?
Welchen Zweck hat die Matrix (?) a und warum ist sie 12-dimensional?
Welchen Zweck haben die 12-Dimensionalen Vektoren rs, z und koeff?
Was ist cpts?
Ohne klare Antworten darauf, wird es für die überwiegende Mehrheit hier wohl unmöglich sein, deinen Code nachzuvollziehen und dir helfen zu können.
greetings
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
könntest du mir vielleicht da irgendwie weiter helfen wenn wir vielleicht in irgendein chat gehen würden?
weil es sind alle richtig gemein und machen mich hier nur fertig
Nein, wie denn auch? Wenn du hier einfach mal den Code erklären und dein Problem endlich mal erörtern würdest ("es geht nicht", "ich komme nicht weiter" sind keine Problembeschreibungen) hättest du mit Sicherheit bald eine Lösung. Versetze dich doch mal in unsere Lage: Jemand kommt postet Code von dem man nicht genau weiß was er tut. Die Namensgebung ist undurchsichtig und man weiß nicht wo das Problem liegt. Dazu kommt noch, dass dies ein OpenGL-Forum ist. Da kennt sich nicht jeder mit diesem Thema aus. Das zu Zeichnen ist sicher für die meisten hier kein Problem, aber mir ist vollkommen unklar was du willst.
Das hat nichts mit gemein zu tun sondern damit, dass dir mit diesen Informationen (noch) niemand helfen kann.
Das Problem ist ich muss das Polynom auf 5. Grad erweitern. Meine mathekenntnisse sind nicht besonders gut.
jeder sagt mir das ich die y-werte ändern soll...aber wie? und an welche stelle. ihr sagt mir zwar ich soll alles kommentieren aber
ich blick da selber nicht durch. wenn ich das könnte würde ich hier nicht um hilfe bitten.
ich kann wirklich nichts dafür
int y = a * power(x, 5) + b * power(x, 4) + c * power(x, 3) + d * power(x, 2) + e * x + f;
glVertex2f(x, y);
}
glEnd();
Das würde ein Polynom 5ten Grades im Interval -100..100 zeichnen. Du rechnest die y-Werte aus und übergibst den nächsten Punkt an OpenGL. Für ein Polynom n-ten Grades geht es genauso. Dazu brauchst du halt die Koeffizienten zB. in einem Array der Länge n.
Das Problem ist nur, dass dir das wohl nicht viel bringen wird. Das ist zwar ein Polynom fünften Grades, hat aber wohl nichts mit deiner Aufgabe zu tun. Woher sollen wir wissen für was du eine Approximationskurve zeichnen sollst? Was haben Matrizen mit einem simplen Polynom zu tun? Es scheint sich hier um ein Problem fachlicher Natur zu handeln. Um welches Fach es sich dabei handelt weiß ich auch nicht. Wenn du das studierst (?) und nicht weißt was du machen musst, wieso sollte das jemand in einem OpenGL Forum?
Ja aber wie mach ich es denn mit den Koeffizienten?
Hast vllt mein Programm gesehen. Weiß du es vllt? Ich muss einfach die Werte a,b,c,d,e,f ändern aber in was????
Allgemein, was ein Polynom 5. Grades ist:
f(x) = a*x^5 + b*x^4 + c*x^3 + d*x^2 + e*x + f
Was du nun für a-f einsetzt, hängt völlig von dir selbst ab. Ergo: Erläuter deine Aufgabenstellung, beantworte bitte ein paar der hier im Raum stehenden Fragen. Hier kann man sonst nichtmal raten.
Registriert: Di Mai 18, 2004 16:45 Beiträge: 2623 Wohnort: Berlin
Programmiersprache: Go, C/C++
Hehe, als ich schon k,l,m,n gelesen habe war mir schon dunkel klar, worauf das hinaus läuft.
Quadratische Bezierkurven(c(x,y)=k²lm) sind 2 Grad, kubische(c(x,y)=k³-lmn) 3. Grades und entsprechend kann man auch bis 5 und weiter gehen.
Hierfür lernt man im Mathe 1, Studiensemester 1 in der regel ein allgemeine Lösung, die man wieder ganz schnell vergisst(ich zumindestens -_-).
Das Problem ist, dass man allgemeine Bezierkurven nicht zeichnen kann, darum macht man eine Approximation und kann diese dann in Rastergrafiken zeichnen.
Eine Bezierkurve mit 4 Kontrollpunkte(6 stützpunkten) wäre eine Bezierkurve 5. Grades.
Um die Funktion zu bekommen gibt es halt die oben erwähnte Formel, welche ich mal schnell gegoogelt habe(wie erwähnt hatte ich die schon vergessen).
C(t) = Summe(i=0;n=5;(5 über i)*t^i*(1-t)^(5-i)*Pi)
Das ganze muss nun ausgerechnet werden und für t kann man dann ein wert zwischen 0 und 1 einsetzen, welcher den fortschritt auf der Bezierkurve zurück gibt.
Wenn du z.B. 10 dieser Punkte dir errechnest, dann hast du eine Approximierte Version.
http://de.wikipedia.org/wiki/B%C3%A9zierkurve
Diese Angaben sollte nochmal von jemanden bestätigt werden, mein Mathe1 Kurs ist schon 3Jahre her.
_________________ "Wer die Freiheit aufgibt um Sicherheit zu gewinnen, der wird am Ende beides verlieren" Benjamin Franklin
Das Problem ist ihr habt davon ahnung ich aber nicht.
Ich muss das Programm morgen abgeben deswegen würd es mich sehr freuen und ich wäre euch sehr dankbar wenn ihr mir die Formel für die Fkt von drawoly() noch machen oder erklären könntet.
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.