Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    181

    [JAVA] disegnare con 'shear'

    ciao, ripropongo il problema, che mi è sorto tempo fa, ma che nessuno mi seppe dare un consiglio, ci riprovo...

    questo esempio mi disegna in un frame un susseguirsi di rettangoli, ma uno sempre più inclinato del successivo, per via dell'utilizzo della funzione "shear"...

    come posso fare per avere tutti quei rettangoli con la stessa inclinazione? e non uno sempre più ribaltato dell'altro? grazie!

    codice:
    import javax.swing.*;
    import java.awt.*;
    
    /** An example of shear transformations on a rectangle. */
    
    public class ShearExample extends JPanel {
    
    	private static final long serialVersionUID = 1L;
    
    	private static int gap=10, width=50;
    	private Rectangle rect = new Rectangle(gap, gap, width, width);
    
    	public void paintComponent(Graphics g) {
    		super.paintComponent(g);
    		Graphics2D g2d = (Graphics2D)g;
    		for (int i=0; i<5; i++) {
    			g2d.setPaint(Color.red);
    			g2d.fill(rect);
    			// Each new square gets 0.2 more x shear.
    			g2d.shear(0.2, 0.0);
    			g2d.translate(2*gap + width, 0);
    		}
    	}
    
    	public static void main(String[] args) {
    		String title =
    			"Shear: x shear ranges from 0.0 for the leftmost" +
    			"'square' to 0.8 for the rightmost one.";
    		WindowUtilities.openInJFrame(new ShearExample(),
    				20*gap + 5*width, 
    				5*gap + width,
    				title);
    	}
    }
    Le altre due classi che vi chiedono sono qui e qui.
    -- John --

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    basta spostare
    codice:
    g2d.shear(0.2, 0.0);
    prima del ciclio for

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    181
    ehm, no, scusa, in effetti hai ragione anche tu, che stupido che sono.

    quel problema era evitabilissimo, infatti dopo aver spostato l'istruzione, mi funzionava come doveva, o quasi: ora mi ha traslato l'intero asse delle Y, ovvero mi streccia tutto quello che è contenuto nel panel.. ovviamente vorrei un rettangolo sotto l'altro.. hai presente? ed invec, man mano che va alla nuova linea, me sposta il rettangolo sempre più a sinistra.. che faccio ora?
    -- John --

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    così li fa tutti in colonna ma li gira
    codice:
    g2d.shear(0.0, 0.2);

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.