1 6 7 package com.thoughtriver.open.vectorvisuals.example.animation; 8 9 import java.awt.*; 10 import java.awt.geom.*; 11 12 import javax.swing.*; 13 14 import com.thoughtriver.open.vectorvisuals.*; 15 import com.thoughtriver.open.vectorvisuals.task.*; 16 17 25 public class ObjectScaling implements Runnable { 26 27 28 private VVDisplay vvDisplay = null; 29 30 33 public ObjectScaling() { 34 vvDisplay = new VVDisplay(new VVPanel()); 35 } 36 37 40 public void run() { 41 JFrame frame = new JFrame("Vector Visuals Object Scaling Example"); 42 frame.setSize(640, 480); 43 frame.getContentPane().setLayout(new BorderLayout()); 44 frame.getContentPane().add(vvDisplay.getViewPane(), BorderLayout.CENTER); 45 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 46 47 frame.setVisible(true); 48 49 vvDisplay.getViewPane().setBackground(Color.DARK_GRAY); 51 vvDisplay.setWorldViewTranslation(80, 20); 52 vvDisplay.setWorldViewScale(1); 53 54 Brush rectLineBrush1 = new Brush(Color.WHITE, null, null); 56 Brush rectFillBrush1 = new Brush(Color.RED, null, null); 57 VisualObject rectangle1 = new VisualObject(new Rectangle2D.Double(0, 0, 115, 40), rectLineBrush1, rectFillBrush1); 58 rectangle1.setTransform(AffineTransform.getTranslateInstance(120, 150)); 59 60 Brush rectLineBrush2 = new Brush(Color.BLACK, null, null); 62 Brush rectFillBrush2 = new Brush(Color.YELLOW, null, null); 63 VisualObject rectangle2 = new VisualObject(new Rectangle2D.Double(0, 0, 40, 90), rectLineBrush2, rectFillBrush2); 64 rectangle2.setTransform(AffineTransform.getTranslateInstance(240, 75)); 65 66 Brush lineBrush3 = new Brush(Color.YELLOW, null, null); 68 Brush fillBrush3 = new Brush(Color.BLUE, null, null); 69 VisualObject ellipse = new VisualObject(new Ellipse2D.Double(0, 0, 60, 60), lineBrush3, fillBrush3); 70 ellipse.setTransform(AffineTransform.getTranslateInstance(210, 180)); 71 72 Brush brush = new Brush(Color.YELLOW, null, null); 74 VisualTextObject textObj = new VisualTextObject("Vectors scale nicely", null, null, brush); 75 76 AffineTransform transform = textObj.getTransform(); 78 transform.scale(2.0, 2.0); 79 transform.translate(15, 120); 80 textObj.setTransform(transform); 81 82 vvDisplay.addObject(rectangle1); 84 vvDisplay.addObject(rectangle2); 85 vvDisplay.addObject(ellipse); 86 vvDisplay.addObject(textObj); 87 88 TaskChain chain = new TaskChain(); 90 chain.addTask(new ScalingTask(textObj, 0.1, 0.1, 4000)); 91 chain.addTask(new ScalingTask(textObj, 1, 2, 3000)); 92 chain.addTask(new ScalingTask(textObj, 3, 0.5, 1000)); 93 chain.addTask(new ScalingTask(textObj, 2, 2, 2000)); 94 vvDisplay.getTaskManager().addTask(chain); 95 96 vvDisplay.getTaskManager().addTask(new ScalingTask(rectangle1, 0.1, 0.1, 10000)); 97 vvDisplay.getTaskManager().addTask(new ScalingTask(rectangle2, 3, 3, 5000)); 98 99 chain = new TaskChain(); 100 chain.addTask(new ScalingTask(ellipse, 3, 0.3, 2000)); 101 chain.addTask(new ScalingTask(ellipse, 0.3, 3, 3000)); 102 chain.addTask(new ScalingTask(ellipse, 0.75, 0.5, 2000)); 103 ; 104 chain.addTask(new ScalingTask(ellipse, 3, 3, 3000)); 105 ; 106 vvDisplay.getTaskManager().addTask(chain); 107 } 108 109 114 public static void main(final String [] args) { 115 Runnable example = new ObjectScaling(); 116 example.run(); 117 } 118 119 } 120 | Popular Tags |