java-forum.org
JBoss Seam
Alter Preis: 39,95 €
Jetzt: 0,00 €

zzgl. Versandkosten

Zurück   java-forum.org > Java - Programmierung > AWT, Swing & SWT

AWT, Swing & SWT Themen zur Programmierung von Benutzer-Oberflächen (GUI) sowie zur Grafikprogrammierung (2D / 3D)

Thema geschlossen    
Themen-Optionen Thema durchsuchen Ansicht
Alt 19.05.2005, 15:44   #1 (permalink)
Stammbenutzer
Kilobyte
 
Registriert seit: 26.01.2005
Beiträge: 167
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard AffineTransform mehrmals nachein. anwenden

Hallo!
Der Titel ist etwas unglücklich geworden.

Ich versuche Folgendes.
Ein Rechteck soll scalierbar, rotierbar, und verschiebbar sein. Einzeln geht es schon (so ungefähr)
Wie bekomme ich es hin, dass ich die einzelnen transformen beliebig oft und in beliebiger reihenfolge auf mein rechteck anwenden kann??

Code:
public void paintComponent(Graphics g){
		super.paintComponent(g);
			g2d = (Graphics2D) g;
			g2d.setColor(Color.GREEN);	
			
			//Affine Transform erzeugen
			AffineTransform as = new AffineTransform();
			
			//ein Rechteck malen
			Iterator zaehler = rectList.iterator();
	         while (zaehler.hasNext())
	         {
	         	g2d.setColor(Color.GREEN);
	         Point punktrect = (Point) zaehler.next();
	         rechteck = new Rectangle2D.Double(punktrect.x,punktrect.y,rectWidth,rectHeight);
	         g2d.draw(rechteck);
	         
	         }			
			
			//Rechteck vergrössern odern verkleinern
			 as.scale(scaleWidth, scaleHeight);
			double transposx = rechteck.x - rechteck.x * scaleWidth;
			double transposy = rechteck.y - rechteck.y * scaleHeight;
			as.translate(transposx/scaleWidth,transposy/scaleHeight);
			g2d.setTransform(as);
			//g2d.draw(rechteck);	
			
			//rechteck rotieren
			as.rotate(theta,rechteck.getCenterX(), rechteck.getCenterY());
			g2d.setTransform(as);
			//g2d.draw(rechteck);	
			
			//rechteck verschieben
			as.translate(transx,transy);
	         g2d.transform(as);
	         g2d.draw(rechteck);	
			
		}
Aufgerufen durch Listener.
Code:
public void mouseClicked(MouseEvent e) {
	if(e.getSource()== mal & rect.isSelected()== true){
	     mal.rectList.clear();
	     mal.scaleHeight =0;
	     mal.scaleWidth =0;
       mal.getRectPoint(e.getPoint());		
}
        repaint();
}
......
public void mouseDragged(MouseEvent e) {
	if(e.getSource() == mal & scale.isSelected()==true ){
	
		mal.scalegraph(e.getPoint());
		 mal.rectList.clear();
	}
	
	if(e.getSource()==mal & rotate.isSelected()==true){	
		
			mal.rotategraph(e.getPoint());
			
		}
	if(e.getSource()==mal & move.isSelected()==true){
		
		mal.getLocationPoints(e.getPoint());
	}	
	repaint();	
}
so wie es ist funktioniert alles nur sehr seltsam mit den komischsten und erstaunlichsten effekten.
raffnix ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Alt 19.05.2005, 18:42   #2 (permalink)
Stammbenutzer
Kilobyte
Themenstarter
 
Registriert seit: 26.01.2005
Beiträge: 167
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Ich merke gerade, daß bei
Code:
 as.rotate(theta,rechteck.getCenterX(), rechteck.getCenterY());
         g2d.setTransform(as);
das Rechteck gar nicht um die mitte rotiert.
woran liegt es?
raffnix ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Thema geschlossen    

Lesezeichen

Latex Maths & Physics Editor ...

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
AffineTransform (setToScale) r74 AWT, Swing & SWT 3 19.02.2008 09:27
affineTransform und jPanel? Lundner AWT, Swing & SWT 1 07.04.2007 23:41
AffineTransform Deployment 1 24.03.2007 19:14
AffineTransform rotate raffnix AWT, Swing & SWT 0 28.05.2005 20:14
AffineTransform Kerberus Spiele- und Multimedia-Programmierung 2 23.02.2004 19:37


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:54 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de