Verständnisfrage.

Status
Nicht offen für weitere Antworten.

Kussefar

Mitglied
Hi,

also ich hatte als hausaufgabe auf, ein eine x² funktion in ein Koordinatensystem zu zeichen....

Dies habe ich so gelöst:

Code:
import java.awt.*;
import java.applet.*;

public class ZeichneFunktion extends Applet
 {
   int m,x0,y0,xNeu,yNeu;
   Graphics Stift;
   public void init()
    {
      m = 50; x0 = 200; y0 = 200;
      setBackground(Color.black);
    }
   public void zeicheKoordinatensystem()
    {
      Stift.setColor(Color.white);
      Stift.drawLine(0,y0,2*x0,y0);
      Stift.drawLine(x0,0,x0,2*y0);
      
      for(int i=0;i<400;i=i+20)
       {
         Stift.drawLine(i,y0+3,i,y0-3);
       }
      for(int i=0;i<400;i=i+20)
       {
         Stift.drawLine(x0+3,i,x0-3,i);
       }

    }
   public void Funktion()
    {
     for (int i=-100;i<100;i++)
      {
        double x = (double)i/m;
        double y = f(x);
        
        if(yNeu(y)<200)
        Stift.drawLine(xNeu(x),yNeu(y),xNeu(x),yNeu(y));
      }
    }
    
   public void paint(Graphics g)
    {
      Stift = g;
      zeicheKoordinatensystem();
      Funktion();
    }
    
   double f(double x)
    {
      return x*x;
    }
   int xNeu(double x)
    {
      return xNeu = (int) (x0+m*x);
    }
   int yNeu(double y)
    {
      return yNeu = (int) (y0-m*y);
    }
 }

jetzt meine Frage:
Der Befehl Stift.drawLine kann ja irgendwie nur int zahlen malen...
Also habe ich alle double in int umgewandelt, dann zeichnet er auch alles perfekt, aber warum zeichnet er jetzt auch ungerade werte??


mfg
 
B

Beni

Gast
Gegenfrage: wieso sollten ungerade Werte nicht gezeichnet werden? Was meinst du überhaupt mit "ungeraden" Werten?
 
B

Beni

Gast
Ach so. Die werden einfach abgerundet. Aus 1.27 wird 1, aus 1.99998 wird auch 1 :wink:
 

Kussefar

Mitglied
Schon klar ! :wink:
Aber dieser befehl drawLine kann ja angeblich nur int , also ganze zahlen, zeichnen.....
 

messi

Bekanntes Mitglied
Kussefar hat gesagt.:
Schon klar ! :wink:
Aber dieser befehl drawLine kann ja angeblich nur int , also ganze zahlen, zeichnen.....
Klar, weil das Programm nur ganze Pixel darstellen kann. Deshalb musst du dafür sorgen, dass der richtige Pixel ausgewählt wird. Um dann auch das Aufrunden zu ermöglichen, benutzt du Math.round() oder addierst direkt 0.5 vor dem Cast zum int: int pixel = (int)(pos + 0.5);
 

Campino

Top Contributor
also: du hast im Methodenaufruf ein (int) vor den double-Wert geschrieben, dass sorgt dafür, dass de VM den double in ein int umwandelt, bevor sie ihn an die Funktion zurückgibt. Das tut sie indem sie die Nachkommastellen "abschneidet" aus 1.25 wird also 1, aus 1.65 wird 1 usw...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Verständnisfrage java.util.TimerTask Allgemeine Java-Themen 2
C try-catch Block Verständnisfrage Allgemeine Java-Themen 14
RalleYTN Collections Verständnisfrage zu Objektreferenzen in Listen Allgemeine Java-Themen 5
O log4j - Verständnisfrage Allgemeine Java-Themen 1
M Verständnisfrage bei Hausaufgabe Allgemeine Java-Themen 7
L Getter und Setter Verständnisfrage Allgemeine Java-Themen 10
H MVC - Verständnisfrage Allgemeine Java-Themen 12
E Verständnisfrage zu synchronized-Blöcken Allgemeine Java-Themen 3
E Verständnisfrage bezüglich Threads Allgemeine Java-Themen 4
agent47 Plugin System Verständnisfrage Allgemeine Java-Themen 6
T Verständnisfrage bei Nachbarschaftsbetrachtung Allgemeine Java-Themen 8
M Verständnisfrage Exceptions Allgemeine Java-Themen 2
A Generics Verständnisfrage Allgemeine Java-Themen 7
J Verständnisfrage zu Casts auf Interfaces Allgemeine Java-Themen 5
J Verständnisfrage - nested static classes Allgemeine Java-Themen 11
J Verständnisfrage zu exceptions Allgemeine Java-Themen 3
J volatile Verständnisfrage Allgemeine Java-Themen 6
S JAAS - Verständnisfrage Allgemeine Java-Themen 2
G allgemein synchroniszed verständnisfrage Allgemeine Java-Themen 19
V FileWriter und Zahlen (Kein Problem, nur Verständnisfrage) Allgemeine Java-Themen 4
T Eine Verständnisfrage Allgemeine Java-Themen 15
T Kleine Verständnisfrage zu Stringbuffer Allgemeine Java-Themen 2
sliwalker Verständnisfrage ObserverPattern Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben