Autor Beitrag
Bernardo
Hält's aus hier
Beiträge: 8

Win XP Pro

BeitragVerfasst: Fr 16.02.07 12:58 
Hallo

Ich sitze grade an meiner Facharbeit für Informatik.
Ich habe das Problem, dass ich nicht weiß, wie ich skallieren kann bzw. wie ich die Achsen einteilen kann, weiß jemand wie das geht?
Der aktuelle STand des Programms hängt dem Post an.
Schonmal danke für eure Hilfe..
Einloggen, um Attachments anzusehen!
freedy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 403
Erhaltene Danke: 1

Winows 7
Delphi XE
BeitragVerfasst: Fr 16.02.07 13:20 
Hallo,

den Code darf ich leider nicht posten, aber den Weg wie wir in meiner Firma die Skaleneinteilung machen. Sollte für dich leicht zu übersetzen sein:

Sei Min und Max der kleinste bzw. größte darzustellende Wert und Ticks die
gewünschte Anzahl von Skalenstrichen.

1. Werte auf den Bereich -1..1 normalisieren (Min-> Min' und Max->Max'),
10er Potenz merken (P10)
2. Für die vordefinierten Skalenstriche (0.05, 0.1, 0.2, 0.25, 0.5)
berechnen, wie viele Skalenstriche in den Bereich [Min,Max] passen
würden und den Skalenstrich nehmen, der am Nächsten an der gewünschten
Anzahl 'Ticks' dranliegt. Skalenstrich = S
3. Min' auf das nächstkleinere Vielfache von S, Max' auf das nächstgrößere
Vielfache von S runden.
4. Min', Max' und S mit P10 multiplizieren, fertig

Beispiel:
Sei Min = -350, Max = 570, Ticks = 6
Nach 1: Min' = -0.35 , Max' = 0.57 , P10 = 1000
Nach 2: 6*0.2 = 1.2, das ist am nächsten an (Max' - Min'). S = 0.2
Nach 3: Min' = -0.4 (weil nächstkleinere), Max' = 0.6
Nach 4: Min = Min'*1000 = -400, Max = Max'*1000 = 600

Also zeichnen wir eine Achse von -400 bis 600 mit Strichen alle 200
Einheiten.

Zu 3 ist noch anzumerken, das es manchmal gewünscht ist, das Min bzw. Max
"wenn's geht" nicht verändert wird. Das ist z.B. bei Balkengrafiken
sinnvoll, die auf jeden Fall bei 0 beginnen sollen. Dann muss die Bedingung
'nächstkleinere/nächstgrößere' auf 'nächstkleinere/größere oder Gleiches'
erweitert werden.


Gruß
Bernardo Threadstarter
Hält's aus hier
Beiträge: 8

Win XP Pro

BeitragVerfasst: Fr 16.02.07 13:27 
Oh Sorry, eine Ergänzung..
Eine EInheit ist ja vordefiniert mit einem Pixel, wie kann ich das verändern, also dass eine Einheit z.b. 10 Pixel sind..

Danke trotzdem..
freedy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 403
Erhaltene Danke: 1

Winows 7
Delphi XE
BeitragVerfasst: Fr 16.02.07 13:30 
user profile iconBernardo hat folgendes geschrieben:
Eine EInheit ist ja vordefiniert mit einem Pixel, wie kann ich das verändern, also dass eine Einheit z.b. 10 Pixel sind..


Dreisatz hilft. :-)
Bernardo Threadstarter
Hält's aus hier
Beiträge: 8

Win XP Pro

BeitragVerfasst: Fr 16.02.07 13:34 
Naja, es geht bei dem Problem eigendlich um die Umsetzung in Delphi, wir wollen, dass in dem angezeigtem Graphen der Funktion, eine Einheit mehr als einem Pixel entspricht...
freedy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 403
Erhaltene Danke: 1

Winows 7
Delphi XE
BeitragVerfasst: Fr 16.02.07 13:46 
Aber wo liegt denn die Schwierigkeit?

10pix sollen z. B. 1 Einheit entsprechen. Wenn du dann 5,4 Einheiten auftragen willst, brauchst du doch nur 10 / 1 * 5, 4 zu rechnen. Schon kennst du deinen Abstand in Pixeln. Oder verstehe ich dich falsch?

Im Prinzip ist das das Gleiche wie: 3 Arbeiter brauchen für die Baustelle 10 Tage. Wie lange bräuchten 5 Arbeiter. Wundere mich immer wieder, dass Schüler heute kaum noch Dreisatz können.

Bei dem Graphen ist es in sofern etwas komplizierter, dass du den Nullpunkt noch richtig berücksichtigen musst. Mit etwas Nachdenken solltest du da aber schnell hinterkommen. Zudem gibt es dir ein besseres Gefühl, wenn du's alleine rauskriegst. :P
Bernardo Threadstarter
Hält's aus hier
Beiträge: 8

Win XP Pro

BeitragVerfasst: Fr 16.02.07 13:51 
Mhmm, das Problem, ist schwer zu erklären.
Wenn du das Programm nutzt, zeigt es dir eine Funtion an und ein Punkt dieser Funktion ist ein Pixel groß, d.h. eine Einheit entspricht einem Pixel, wir wollen das ändern, sodass du die Funktion besser sehen kannst, also sollte eine Einheit mehr als einem Pixel entsprechen.
Eine Skallierung anzubauen ist also nicht das Problem, sondern das Problem ist es, entweder einen "Zoom" einzubauen oder es halt möglich zu machen, dass eine Einheit mehr als einem Pixel entspricht, im Endeffekt führt das ja alles zum gleichen Ergebnis.
Und das rein theoretisch ist auch kein Problem, aber wie könnte man das in Delphi formulieren, sodass es funktioniert???
freedy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 403
Erhaltene Danke: 1

Winows 7
Delphi XE
BeitragVerfasst: Fr 16.02.07 15:01 
Wie ist denn der Titel eurer FA? Wäre es nicht einfacher, wenn ihr nicht gerade die Funktion darstellen sollt, eine fertige Komponente zu nehmen?

Dann machst du, glaube ich, einen Gedankenfehler. Oder ich verstehe dich falsch. :-) Soll ja auch vorkommen.

Beim Auftragen einer Funktion sind für mich alle Werte erstmal einheitslos bzw. die Einheit ist vollkommen egal. Was du machen musst, ist doch nur folgendes:

Die Funktion soll z. B. von -10 bis +10 berechnet werden. Du weißt aus der Größe deiner Komponente auch, wieviele Pixel du in der Breite zur Verfügung hast. -> Daraus folgt, dass du auch weißt, wieviele Pixel du von 0 nach 1 benötigst. Jetzt könnte man rückwärts rechnen. Für jedes Pixel, dass du setzen willst, berechnest du dir den realen X-Wert. -10 entspräche damit Pixel 0, +10 deiner Width, 0 = (Width div 2). Den Y-Wert berechnest du mit deiner Funktion und wandelst ihn dann anhand der Y-Skalierung in einen Pixelwert um. Liegt dieser innerhalb deiner Zeichenfläche, trägst du ihn ein. Wenn nicht, dann nicht. :-)

Änderst du nun den minimalen oder maximalen Wert der X-Achse, musst du die Funktion nur neu berechnen. Fertig.

Oder du nimmst einfach eine fertige Komponente. Es gibt da genügend im Netz. Teilweise auch fertie Funktionsplotter.
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 16.02.07 15:07 
@Bernardo: du weisst ja schon, dass du eidesstattlich versichern darfst, dass du deine facharbeit selbst angefertigt hast ohne hilfe von anderen. ansonsten kann dir dein titel aberkannt werden. also hoffe hier nicht auf allzu grosser unterstützung für dein betrugsvorhaben.
Airwolf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 92



BeitragVerfasst: Fr 16.02.07 18:30 
user profile iconGrenzgaenger hat folgendes geschrieben:
@Bernardo: du weisst ja schon, dass du eidesstattlich versichern darfst, dass du deine facharbeit selbst angefertigt hast ohne hilfe von anderen. ansonsten kann dir dein titel aberkannt werden. also hoffe hier nicht auf allzu grosser unterstützung für dein betrugsvorhaben.


Würde ich dir eigentlich zustimmen, ist nur die Frage inwieweit das Betrug ist, schließlich macht er das ja alles allein, er holt sich nur Rat wie er bestimmte Sachen machen kann. Kann man das wie hier nicht als eine Quelle verstehen? Schließlich habe ich für meine Facharbeit auch mehrere Leute zu meinem Thema befragt die mehr Ahnung hatten als ich. Inwieweit man das nun wieder in Verbindung bringen kann weiß ich nicht, da es bei mir um Kirchen ging und ich mir ein paar Geschichtliche Fakten bei diesen Personen geholt habe.

Ich denke wenn er das Forum und vllt. noch den Autor (bürgerlicher Name) angibt, dann dürfte es keine Probleme geben, oder?
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 16.02.07 18:43 
er muss halt jede quelle angeben. dann ist das in ordnung. ansonsten gibts eine person, welche dafür da ist um zu helfen und ratschläge zu geben, oder auch das thema und/oder den inhalt anzupassen, und das wär sein prof./betreuer

aber wie gesagt, wenn er jede quelle angibt, dann ist auch nichts dagegen einzuwenden. muss halt nur mit seinem prof./betreuer vorher abgesprochen sein, dass er so vorgeht.

ich vermute nur, er weiss von nix...
Bernardo Threadstarter
Hält's aus hier
Beiträge: 8

Win XP Pro

BeitragVerfasst: Mi 21.02.07 12:33 
Also der Titel ist "Funktionsplotter unter DELPHI"...

Ja, das mit den Quellen ist nicht das Thema, da uns allen durch die Arbeit kein Titel verliehen wird, das ist nur etwas, das wir in Informatik schnell mal erldigen sollen.
Wir gehen auf ein Gymnasium und sind keine Studenten...