Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Tutorial

Arbeiten mit Grafik-Befehlen

von RedakteurytwinkySeite 5 von 7

Richtig, natürlich nicht!^^ Puristen könnten sagen, daß die Gerade jetzt ja nur 'ungefähr' von P1 nach P2 geht, aber die haben wir ja schnell ruhiggestellt,
denn wir kennen ja schon den PSet-Befehl

PSet(P1.x, P1.y), Schwarz
PSet(P2.x, P2.y), Schwarz

Wir könnten jetzt stundenlang darüber diskutieren, ob die Punktfarbe besser gleich der Linienfarbe sein sollte oder gleich der Beschriftungsfarbe; ça dépends..(wie der Franzose sagt:das kommt darauf an), denn im Endeffekt kann es jeder so machen, wie er möchte.
Der Circle-Befehl kann aber noch mehr als Kreise zu zeichnen, er kann auch nur Teile davon zeichnen.
Dabei ist es wichtig, zu wissen, was er da tut! Nein, beim Circle-Befehl sind wir dabei jetzt nicht, sondern im Mathematik-Kurs.
FreeBASIC 'kann' von Haus aus erstmal 'nur' einen Winkelmodus Radiant(Abk. rad, auch Bogenmaß genannt). Die Einzelheiten sind hier genauer beschrieben. Pobieren wie es also aus, es kann ja nichts schiefgehen:

Dim As Double AnfangsWinkel, EndWinkel, Radius=100.0
AnfangsWinkel=Pi/9.0
EndWinkel=Pi/3.0
Circle (P(3).x, P(3).y), Radius, Gruen, AnfangsWinkel, EndWinkel

Diese Zeile muß einfach nur in unseren bestehenden Code eingefügt werden. Es geht immer noch nicht? Dann muß in der Const-Zeile noch hinter Blau=1 ', Gruen=2' eingefügt werden. Wenn's immer noch nicht geht, dürfte eigentlich nur die Deklaration von Pi fehlen(Const Pi=4.0*Atn(1.0) einfügen)..
Jetzt sollte der Rechner einen Bogen in Gruen auf den Bildschirm gezeichnet haben. Spannend..
Spannend wird es jetzt, wenn wir in der Circle-Anweisung den Winkeln ein '-' voransetzen: Wow, die Grundlage für ein Tortendiagramm ist fertig..
Dummerweise erlaubt FreeBASIC die Angabe des Parameters F nicht, d.h. erlaubt ist es schon, aber das Segment wird nicht gefüllt :-((
Was tun? Im Forum fragen? Nö, wir würden nur die Antwort erhalten, daß wir doch in der Befehlsreferenz unter 'Paint' nachsehen möchten. Na, und dann können wir es ja auch sofort machen..
..und das Beispiel ausprobieren, denn es funktioniert ja..

Paint (200, 200), Gruen, Gruen

führt aber nicht ganz zum gewünschten Erfolg. Und wieso nicht? Wir haben Gruen als Randfarbe definiert, bis zu der gefüllt werden soll. Dummerweise haben wir dem Paint-Befehl aber den Mittelpunkt des Kreises übergeben, dessen Segment wir füllen wollen und dessen Farbe ist nun mal Gruen und bis dahin wird eben gefüllt..
..und das heißt in unserem Fall, es wird alles gefüllt, bis auf das Segment. Das ist wirklich dumm gelaufen..
Wir bräuchten einen Punkt, der garantiert und immer innerhalb des Segmentes liegt..
Die Probiermethode ergibt:

Paint (240, 160), Gruen, Gruen

Klasse, ein Kuchendiagramm, dem wir mit

Circle (200, 200), 100, Rot, -Pi/9.0, -Pi/3.0

auch noch einen Rahmen verpassen könnten, aber es bleibt erstmal noch Glückssache, denn wir müssen ja probieren, bis wir einen Punkt haben, der in die Fläche fällt. Dabei haben wir doch alle nötigen Angaben:
-eine Strecke(der Radius, auf seiner Hälfte liegt mit Sicherheit ein Punkt im Segment)
-Anfangs- und Endwinkel(auf der Hälfte der Differenz liegt bestimmt ein Punkt im Segment)..

 

Gehe zu Seite Gehe zu Seite  1  2  3  4  5  6  7  
Zusätzliche Informationen und Funktionen
  • Das Tutorial wurde am 09.08.2007 von Redakteurytwinky angelegt.
  • Die aktuellste Version wurde am 11.08.2007 von Redakteurytwinky gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen