SSISO Community

시소당

Text effect: rotation and transparent

import  java.awt.AlphaComposite;
import  java.awt.Dimension;
import  java.awt.Font;
import  java.awt.Graphics;
import  java.awt.Graphics2D;
import  java.awt.RenderingHints;
import  java.awt.geom.AffineTransform;

import  javax.swing.JFrame;
import  javax.swing.JPanel;

public  class  TextRendering  extends  JPanel  {
    public  void  paint(Graphics  g)  {
        Graphics2D  g2  =  (Graphics2D)  g;
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON);

        Dimension  d  =  getSize();
        AffineTransform  ct  =  AffineTransform.getTranslateInstance(d.width  /  2,
                d.height  *  3  /  4);
        g2.transform(ct);

        String  s  =  "www.java2s.com";
        Font  f  =  new  Font("Serif",  Font.PLAIN,  128);
        g2.setFont(f);

        int  count  =  6;
        for  (int  i  =  1;  i  <=  count;  i++)  {
            AffineTransform  oldTransform  =  g2.getTransform();

            float  ratio  =  (float)  i  /  (float)  count;
            g2.transform(AffineTransform.getRotateInstance(Math.PI
                    *  (ratio  -  1.0f)));
            float  alpha  =  ((i  ==  count)  ?  1.0f  :  ratio  /  3);
            g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,
                    alpha));
            g2.drawString(s,  0,  0);

            g2.setTransform(oldTransform);
        }
    }

    public  static  void  main(String[]  args)  {
        JFrame  f  =  new  JFrame();
        f.getContentPane().add(new  TextRendering());
        f.setSize(800,  800);
        f.show();
    }
}

737 view

4.0 stars