Hallo Liebe Leute,
ich habe am Freitag meine Abgabe über mein openGL-Programm.
ich habe angenfangen zu Programmieren aber ich komme leider nicht weiter.
das Programm soll eine Approximationskurve zeichnen und das habe ich auch
hinbekommen, doch nun soll ich noch eine Funktion erstellen, wo das Programm
mit der Approximationskurve eine Approximations polynom zeichnen soll, doch
ich bekomme es nicht hin. Ich habe die Matrix für die LR-Zerlegung gemacht
und nun fällt mir noch die letzte Funktion.
ich bitte euch liebe leute mir irgendwie zu helfen, vielleicht auch das Programm zu ende zu schreiben.
ihr wärt mir eine Große HILFE.
falls sich irgendjemand melden würde: dann bitte auf diese Adresse: bevhillmont@gmx.de hier mein quellcode: (in diesem quellcode ist alles dabei, nur wie gesagt das mit der polynom aufgabe fehlt.)
hier die pdf dateien, vielleicht helfen sie euch weiter: http://user.fh-frankfurt.de/~rewolf/LGnepo/approx.pdf oder http://user.fh-frankfurt.de/~rewolf/LGnepo/interpol.pdf
Ich danke euch.
Mit freundlichen Grüßen
Julia K.
[code]
/*
** Parabel.c
**
** Simple Bezier curve drawing program.
**
** The following keyboard commands are used to control the
** program:
**
** q - Quit the program
** c - Clear the screen
** b - Draw Approximation curves
** i - Input control points
** p - Draw control polygon
** m - Move control points
** a - Approxmitation with polynom
**
*/
/* This routine inputs new control points */
static void mouse(int button, int state, int x, int y)
{
float wx, wy;
int i,found;
/* We are only interested in left clicks */
if (button != GLUT_LEFT_BUTTON || state != GLUT_DOWN)
return;
if ((button == GLUT_LEFT_BUTTON) && (state == GLUT_DOWN) && (key_input==1))
{
/* Translate back to our coordinate system */
wx = (2.0 * x) / (float)(width - 1) - 1.0;
wy = (2.0 * (height - 1 - y)) / (float)(height - 1) - 1.0;
/* See if we have room for any more control points */
if (ncpts == MAX_CPTS)
return;
/* Save the point */
//printf("\n%d",ncpts);fflush(stdout);
cpts[ncpts][0] = wx;
cpts[ncpts][1] = wy;
cpts[ncpts][2] = 0.0;
ncpts++;
glutPostRedisplay();
}
if ((button == GLUT_LEFT_BUTTON) && (state == GLUT_DOWN) && (key_input==0))
{
i=-1;
found=0;
while((i<(ncpts-1)) && (found == 0))
{
i++;
//printf("\n index=%d, found= %d,%4d,%4d",i,found,x,y);fflush(stdout);
wx = (2.0 * x) / (float)(width - 1) - 1.0;
wy = (2.0 * (height - 1 - y)) / (float)(height - 1) - 1.0;
if((fabs((double)(wx-cpts[i][0]))<0.1) && (fabs((double)(wy-cpts[i][1]))<0.1))
{
found = 1;
indx = i;
}
}
if(found == 1)
{
glutMotionFunc(move);
}
}
}
/* This routine handles keystroke commands */
void keyboard(unsigned char key, int x, int y)
{
switch (key)
{
case 'q': case 'Q':
exit(0);
break;
case 'c': case 'C':
ncpts = 0;
key_Approcurve=0;
key_Parabel=0;
key_ctrlpoly=0;
key_input=0;
key_points=0;
glutPostRedisplay();
break;
case 'b': case 'B':
key_Approcurve=1;
key_input=0;
glutPostRedisplay();
break;
case 'a': case 'A':
key_Parabel=1;
key_input=0;
glutPostRedisplay();
break;
case 'p': case 'P':
if(key_ctrlpoly==0)
key_ctrlpoly=1;
else key_ctrlpoly=0;
key_input=0;
glutPostRedisplay();
break;
case 'i': case 'I':
key_input=1;
key_points=1;
break;
case 'm': case 'M':
key_input=0;
break;
}
}
/* This routine handles window resizes */
void reshape(int w, int h)
{
width = w;
height = h;
/* Set the transformations */
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glViewport(0, 0, w, h);
}
int main(int argc, char **argv)
{
printf("TEST");/* Intialize the program */fflush(stdout);
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB);
glutInitWindowSize(width, height);
glutInitWindowPosition(600,50);
glutCreateWindow("APPROXIMATION CURVES");
glEnable(GL_MAP1_VERTEX_3);
glClearColor(1.0, 1.0, 1.0, 1.0);
Also 1. gibt es in diesem Forum eine Code-Funktion, damit könntest du deinen Quelltext ordentlich darstellen.
2. ist es nicht die feine englische Art die Leute zu fragen, ob sie dein Programm zu Ende schreiben, eigentlich läuft das eher so ab, dass man sagt, wieweit man kam, seine Ansätze zeigt und einem dann auch geholfen wird.
3. ist es GANZ UND GARNICHT die feine englische Art Crossposting zu betreiben. Deine Art des Crossposting ist mir sogar gänzlich neu: Einfach an existierende Threads deine Frage ranhängen. Wenn jemand dir helfen will (was ich nun bezweifle bei so viel Dreistigkeit), dann würde ich er das hier tun. Crossposting sind unnötig und nervig - in deinem Fall besonders nervig und dreist.
Denk mal über die Regeln nach, die so ein Forum hat und die hier sicherlich auch gut findbar stehen. Du willst hier etwas von den Leuten hier, also ist es nicht zu viel verlangt, sich VORHER mal mit den Regeln und Gepflogenheiten auseinanderzusetzen.
Ziz
PS: Achja, Threadnamen in Großbuchstaben mit einer Armada von Ausrufezeichen und ohne jeglichen inhaltlichen Bezug zum Thread sind auch ein No Go.
_________________ Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut. Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’. Und du schaust mich an und fragst ob ich das kann. Und ich denk, ich werd' mich ändern irgendwann. _________________Farin Urlaub - Bewegungslos
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Hallo Julia,
in diesem Forum nehmen wir alle Themen ernst und versuchen Fragen so zeitnah wie möglich zu beantworten. Das teils sogar mit erheblichen privatem Zeitaufwand. Allerdings bin ich nicht gewillt eine solche Posttaktik zu akzeptieren. Wie Ziz schon gesagt hat sind wird nicht da um Dinge von Anderen zu erledigen sondern um bei Fragen/Problemen behilflich zu sein bzw. Denkanstöße zu geben etc. Aber damit wir das auch tun können brauchen wir mehr als "bitte helft" und einen batzen Code. Besonders bei Code ist weniger meist mehr. Und eine genaue Beschreibung deines Problemes ist nie verkehrt. Außerdem haben Foren es so an sich, dass man dort diskutiert und nicht per Mail.
Entsprechend werde ich dieses Thema jetzt auch schließen und ich bitte dich ein neues Thema zu erstellen. Dann aber mit einem sinnvollen Titel und einer etwas aussagekräftigeren Problembeschreibung. Und vielleicht mit einem extrakt der wichtigen Codestellen.
PS: Damit nicht der falsche Eindruck entsteht. Wir helfen gern. Aber ein bisschen was sollte schon auch von deiner Seite kommen.
Mitglieder in diesem Forum: 0 Mitglieder und 2 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.