2016-06-25 3 views
-1

Also was ich tun wollte, ist ein Dreieck in Java ohne externe Bibliotheken für eine Herausforderung zu interpolieren, nur mit Swing, um das Bild anzuzeigen. Ich habe im ganzen Internet gesucht und konnte nichts finden. Deshalb mache ich das.java dreieck interpolation wie aka rgb test bild

Antwort

1

Die Lösung: Gewichtete Durchschnittswerte!

private int interpolate(int x, int y, int v1, int v2, int v3) { 
    // these are my triangle corners 

    Vector p1v = new Vector(p1.x, p1.y); 
    Vector p2v = new Vector(p2.x, p2.y); 
    Vector p3v = new Vector(p3.x, p3.y); 

    // current point 
    Vector f = new Vector(x, y); 

    // calculate weighted average 

    double a1 = triangleArea(f, p2v, p3v); 
    double a2 = triangleArea(f, p1v, p3v); 
    double a3 = triangleArea(f, p1v, p2v); 

    return (int) ((a1 * v1 + a2 * v2 + a3 * v3)/(a1 + a2 + a3)); 

} 

Verwendung - setzte in Doppel for-Schleife für x und y-Wert:

int red = interpolate((int) x, y, p1red, p2red, p3red); 
int green = interpolate((int) x, y, p1green, p2green, p3green); 
int blue = interpolate((int) x, y, p1blue, p2blue, p3blue); 

//System.out.println("xyrgb: " + (int)x + ", " + y + ", " + red + ", " + green + ", " + blue); 

bI.setRGB((int)x, y, new Color(red, green, blue).getRGB()); 

Sie können mehr von dem Code auf meinem GitHub finden: here

Screenie: lol

+0

Dieses Bild ist privat, warum schreibst du es nicht auf Imgur? –

+0

Ich bin ein Derp, das ist warum xD Es ist jetzt richtig @ Mr.Polywhirl hinzugefügt – psrcek

Verwandte Themen