Graphen in Java zeichnen

Java4win

Aktives Mitglied
Hey ich versuche gerade einen Graphen mit einem Programm zeichnen zu lassen.
Zu beginn habe ich die Werte im Programm festgelegt, dies

kann man ja später noch ändern das man diese selber eingibt. ( Es sollte ein exponentieller Graph sein also "Anfangswert * Steigung^x" )

So sieht mein ProgrammCode dazu aus. Ich bekomme ein sehr interessantes Ergebnis aber leider keinen Graphen😀

Werte:
Var.screenheight = 800;
Var.screenwidth = 800;
Var.anfangswert = 100;
Var.steigung = 2;


Java:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;

import javax.swing.JLabel;

public class Draw extends JLabel {
   
    protected void paintComponent(Graphics g){
       
        super.paintComponent(g);
       
        Graphics2D g2d = (Graphics2D) g;
       
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
       
        g2d.setColor(Color.BLACK);
        g2d.fillRect(0, 0, Var.screenheight, Var.screenwidth);
       
       
        for (int i = 0; i < 1000; i++){
           
            g2d.setColor(Color.WHITE);
            g2d.fillRect(i, Var.anfangswert * Var.steigung^i, 1, 1);
           
        }
       
    }

}

Besten Dank im Voraus.
 
Die Frage war auch kein Vorwurf sondern eher ein Anreiz sich damit zu beschäftigen 😛

Nein also der ^-Operator ist in Java das XOR.
Hier mal ein kleines Beispiel.
Wenn in deinem Code 5^6 steht, kommt nicht 15625 raus sondern 3 😉

Warum?
Code:
Wertetabelle für XOR sieht so aus:
^ | 0 1      ^ | F T
--+-----     --+-----
0 | 0 1      F | F T
1 | 1 0      T | T F

und demnach kommt bei 5^6 folgendes raus:

(dezimal)       (binär)
     5       =   101
     6       =   110
-------------------- XOR
     3       =   011

Wenn du wirklich mathematisch 5 hoch 6 rechnen willst, musst du Math.pow(base, exp) benutzen 😉
 
Die Frage war auch kein Vorwurf sondern eher ein Anreiz sich damit zu beschäftigen 😛
Haha ja habe ich gerade schon getan 🙂
Danke für deine Hilfe ich habe ist auch schon bereits mit Math.pow versucht:
Java:
g2d.fillRect(i,Math.pow(Var.anfangswert * Var.steigung,i), 1, 1);

Leider dürfen in die fillRect Methode nur int - Werte rein und keine Double Werte welche in die Math.pow Methode müssen🙂

Mal gucken wie ich das jetzt hin bekomme😀
 
Vielleicht ist da statt einem Rectangle eine Line angebrachter 😉
Ich war sogar schon so weit mit dem Recherchieren das ich nun weiß das man eine Polyline verwenden kann.

Java:
for (int i = 0; i < 10; i++){
           
            g2d.setColor(Color.WHITE);
            g2d.drawPolyline(int [i], int [(int)Math.pow(Var.anfangswert * Var.steigung,i)] , 5);

Nur ich habe noch nicht ganz herausbekommen, wie ich meine x und y Werte in die int arrays der Polyline Methode bekommen kann, bisher ist jeder versuch gescheitert 🙂 aber man lernt ja am besten aus seinen Fehlern🙂
 

Zurück
Oben