Permalänk
Medlem

Java - Utfyllnad bakom linje

Hej, jag placerar ut linjer mha två punkter och vill fylla ut området ovanför. Linjerna är en övre gräns i en JPanel. Hur gör jag för att lösa detta?

Visa signatur

i 300 kan ingen höra dig skrika..

Permalänk

medans det kommer nån som vet (inte jag), så kan du spela ett java spel undertiden^^

Visa signatur

CPU i9-9900K GPU ASUS RTX 2080 TI Strix OC MB ASUS STRIX Z390-E RAM Corsair VENGEANCE RGB 32GB DDR4 3200MHz Case Fractal Design Define C PSU EVGA G3 850W Cooling Noctua D15
Monitor MSI Optix MAG342CQR SSD Samsung 970 EVO 500GB 860 EVO 500GB 860 QVO 2TB + QVO 4TB PLEX Server 2x HC560 20TB+WD RED 2x10TB+12TB

Permalänk
Medlem

Varför inte rita ut det med en rektangel istället?

Ecchi-BANZAII!!!: Väldigt onödig kommentar. Låt bli att svara om du inte har ett vettigare svar.

Permalänk
Medlem

Jag försökte rita ut en rektangel men fick det inte att fungera. Klassen som ritar ut rektangeln använder fyra punkter för att få den utritad. Jag behöver ett antal rektanglar efter varandra som skall sitta ihop och vara fyllda. Får inte till det

Visa signatur

i 300 kan ingen höra dig skrika..

Permalänk
Medlem

Kan du förklara lite närmare vad du behöver göra? Är inte området du ska färglägga regelbundet? Annars bör det räcka med en rektangel.
Kan du skriva koden här så är det enklare att hjälpa dig.

Permalänk
Medlem

Jag skall göra ett "tak" och ett "golv" till sett spel. Taket & golvet skall röra sig och det skall vara utfyllt ovanför.

import java.awt.Color; import java.awt.Graphics; class ApplicationHandler { private FigureHandler figureHandler; public ApplicationHandler(FigureHandler fh) { figureHandler=fh; } public void insertFigures() { // Roof figureHandler.insert(new Terrain(new Point(0,0), new Point(200,40))); figureHandler.insert(new Terrain(new Point(200,40), new Point(400,20))); figureHandler.insert(new Terrain(new Point(400,20), new Point(600,60))); figureHandler.insert(new Terrain(new Point(600,60), new Point(900,50))); figureHandler.insert(new Terrain(new Point(900,50), new Point(1000,10))); // Ground figureHandler.insert(new Terrain(new Point(0,1300), new Point(100,1250))); figureHandler.insert(new Terrain(new Point(100,1250), new Point(300,1300))); figureHandler.insert(new Terrain(new Point(300,1300), new Point(500,1200))); figureHandler.insert(new Terrain(new Point(500,1200), new Point(700,1270))); figureHandler.insert(new Terrain(new Point(700,1270), new Point(900,1290))); figureHandler.insert(new Terrain(new Point(900,1290), new Point(1000,1300))); } public void toggleMove() { figureHandler.movementToggle(); } public void tick() // a time step 10ms has occurred { } public void keyAction(int button, boolean pressed) { } public void mouseAction(int button, boolean pressed, int x, int y) { if(pressed) { Figure f = figureHandler.findFigureAt(x,y); if(f!=null) figureHandler.remove(f); } } }

Rektangel klass

import java.awt.Graphics.*; import javax.swing.*; import java.awt.*; public class Rect extends Figure { protected Point p1, p2, p3, p4, pc; public Rect(Point p1, Point p2, Point p3, Point p4) { this.p1=p1; this.p2=p2; this.p3=p3; this.p4=p4; pc = new Point((p2.getCenterX()-p1.getCenterX())/2.0+p1.getCenterX(),(p1.getCenterY()-p4.getCenterY())/2.0+p4.getCenterY()); } public void move(double dx, double dy) { p1.move(dx,dy); p2.move(dx,dy); p3.move(dx,dy); p4.move(dx,dy); pc.move(dx,dy); } public void rotate(double angle) { p1 = p1.rotate(p1, pc, angle); p2 = p2.rotate(p2, pc, angle); p3 = p3.rotate(p3, pc, angle); p4 = p4.rotate(p4, pc, angle); } public double getCenterX() { return pc.getCenterX(); } public double getCenterY() { return pc.getCenterY(); } public void setCenterX(double x) { double dx = x-pc.getCenterX(); pc.move(dx,0); p1.move(dx,0); p2.move(dx,0); p3.move(dx,0); p4.move(dx,0); } public void setCenterY(double y) { double dy = y-pc.getCenterY(); pc.move(0,dy); p1.move(0,dy); p2.move(0,dy); p3.move(0,dy); p4.move(0,dy); } public String toString() { return "("+p1+","+p2+","+p3+","+p4+")"; } public void draw(java.awt.Graphics g) { g.setColor(color); g.drawLine((int)p1.getCenterX(),(int)p1.getCenterY(),(int)p2.getCenterX(),(int)p2.getCenterY()); g.drawLine((int)p2.getCenterX(),(int)p2.getCenterY(),(int)p3.getCenterX(),(int)p3.getCenterY()); g.drawLine((int)p3.getCenterX(),(int)p3.getCenterY(),(int)p4.getCenterX(),(int)p4.getCenterY()); g.drawLine((int)p4.getCenterX(),(int)p4.getCenterY(),(int)p1.getCenterX(),(int)p1.getCenterY()); } public double getEnclosingRadius() { double dx=getCenterX()-p1.getCenterX(); double dy=getCenterY()-p1.getCenterY(); return Math.sqrt(dx*dx+dy*dy); } public boolean intersects(Figure t) { return false; } public boolean encloses(double x, double y) { return false; } }

Visa signatur

i 300 kan ingen höra dig skrika..

Permalänk
Medlem

Varför använder du inte Javas inbyggda rektangelobjekt?