/* * TwistWordCanvas.java * * Created on November 11, 2005, 7:40 AM */ package Current.popups.TwistWord; import java.awt.*; import java.awt.geom.*; import Current.basic.HolonomyPosition; import Current.gui.*; import Current.basic.*; import Current.popups.ImageSave.ImageSaver; import Current.manage.*; import Current.plot.BilliardLike.*; /** *hea * @author pat */ public class TwistWordCanvas extends DBCanvas implements ImageSaver { Manager M; String word; HolonomyPosition[] hol; Complex tri; GeneralPath path; static final Complex[] shift={ new Complex(-0.5, Math.sqrt(3)/2), new Complex(-0.5, -Math.sqrt(3)/2), new Complex(1,0) }; int mode; static Color pathColor=Color.white; /** Creates a new instance of TwistWordCanvas */ public TwistWordCanvas(Manager M) { this.M=M; M.addListener(this); setBackground(Color.black); word=M.getWord(); LoopWord lw=new LoopWord(word); hol=lw.createHolonomy(); tri=M.getZ(); mode=0; draw(); M.ISM.add("word",this); } public void mcbCleanup() { M.remove(this); } /** render what needs to be shown for writing images to files */ public void imageSave(Graphics G) { paint(G); } public void paint(Graphics gfx){ Graphics2D g=(Graphics2D) gfx; g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); Rectangle2D rect=path.getBounds2D(); AffineTransform T=new AffineTransform(); double s1=getWidth()/rect.getWidth(), s2=getHeight()/rect.getHeight(),s; if (s1=2) { draw(); repaint(); } } public void mcbReceive(Tile t) { word=t.getStringWord(); LoopWord lw=new LoopWord(word); hol=lw.createHolonomy(); draw(); repaint(); } }