Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    30

    Problema con il disegno di un cerchio avente centro in comune con un rettangolo.

    Ciao ragazzi, devo disegnare un rettangolo con al centro un cerchio il cui raggio sia un terzo dell'altezza del rettangolo.
    Io ho fatto così:
    codice:
    import javax.swing.*;
    import java.awt.geom.*;
    import java.util.*;
    import java.awt.*;
    
    public class MyPanel extends JPanel {
    	private int WIDTH=200;
    	private int HEIGHT=350;
    	private int x=100;
    	private int y=60;
    	private double raggio=HEIGHT/3;
    
        public void paintComponent(Graphics g){
        	super.paintComponent(g);
        	Graphics2D g2=(Graphics2D) g;
        	g2.setColor(Color.BLACK);
        	Rectangle2D scatola=new Rectangle2D.Double(x,y,WIDTH,HEIGHT);
        	g2.draw(scatola);
        	Ellipse2D circle=new Ellipse2D.Double(scatola.getCenterX(),scatola.getCenterY(),raggio,raggio);
        	g2.setColor(Color.GREEN);
        	g2.fill(circle);
        }
    
    
    }
    Il problema è che il cerchio non viene disegnato dove vorrei, e questo perché le coordinate che passo al cerchio non sono quelle del suo centro.
    Come posso fare per far apparire il cerchio dove voglio tramite le coordinate del centro?

  2. #2
    Utente di HTML.it L'avatar di LuckySevenRoX
    Registrato dal
    Sep 2011
    residenza
    Foligno
    Messaggi
    361
    matematicamente potresti risolvere così:

    (larghezza rettangolo - raggio cerchio) / 2 = A
    coordinata X del rettangolo + A = coordinata x del cerchio

    stessa cosa per l'Y

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Problema con il disegno di un cerchio avente centro in comune con un rettangolo.

    Originariamente inviato da mattia96
    codice:
        	Ellipse2D circle=new Ellipse2D.Double(scatola.getCenterX(),scatola.getCenterY(),raggio,raggio);
    Ricorda che gli Ellipse2D sono definiti in termini di x_sinistro/y_alto/larghezza/altezza riferiti al rettangolo in cui è inscritto l'ellisse ... non in termini di x_centro/y_centro/metà_larghezza/metà_altezza.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.