[wadalabfont-kit] / java / MinchoRenderer.java  

View of /java/MinchoRenderer.java

Parent Directory | Revision Log
Revision: 1.1 - (download) (as text) (annotate)
Thu Dec 28 08:54:22 2000 UTC (23 years, 4 months ago) by ktanaka
Branch: MAIN
Branch point for: ktanaka
Initial revision
public class MinchoRenderer extends Renderer{
  // $B=DK@$NI}(B
  double width;
  // $B=DK@$KBP$9$k2#K@$NHfN((B
  double ratio;
  // $B$R$i$,$J$NI}(B
  double hiraWidth;
  // $B=DK@$N;OE@$N>~$j(B
  double tateSerif;
  // $B=DK@$H2#K@$N8rE@$N>~$j(B
  double tateYokoSerif;
  // $B2#@~$N;_$a$N=D@~$KBP$9$kHf(B
  double yokoSerif;
  public static MinchoRenderer hosoMincho=
    new MinchoRenderer(8.0,0.2,0.35,1.8,1.8,2.4);
  public static MinchoRenderer chuuMincho=
    new MinchoRenderer(12.0,0.4,0.6,1.5,1.4,1.8);
  public MinchoRenderer(double w,double r,double hw,
                        double ts,double tys, double ys){
    width=w; ratio=r; hiraWidth=hw;
    tateSerif=ts; tateYokoSerif=tys; yokoSerif=ys;
  }
  static Outline[] tenSample;
  // $BE@$NIA2h(B
  public Outline[] ten(Point[] points,ElementAnnotation[] annotations){
    if(tenSample==null){
      tenSample=new Outline[2];
      OutlineComponent[] lc=new OutlineComponent[1];
      lc[0]=new Bezier(new Point(80,171),new Point(119,214),
                       new Point(104,256),new Point(136,255));
      tenSample[0]=new Outline(lc);
      lc=new OutlineComponent[1];
      lc[0]=new Bezier(new Point(80,171),new Point(155,204),
                       new Point(173,251),new Point(136,255));
      tenSample[1]=new Outline(lc);
    }
    // $B$3$l$r(B p0,p1$B$K(Bfit$B$9$k(B
    return line2(points[0],points[1],width);
  }
  // $B=DK@$NIA2h(B
  public Outline[] tate(Point[] points,ElementAnnotation[] annotations){
    return line2(points[0],points[1],width);
  }
  // $B2#K@$NIA2h(B
  public Outline[] yoko(Point[] points,ElementAnnotation[] annotations){
    return line2(points[0],points[1],width*ratio);
  }
  // $B1&>e(B
  public Outline[] migiue(Point[] points,ElementAnnotation[] annotations){
    return curve2(points[0],points[1],points[2],
                 0.6,0.6,
                 width,0.7*width,0.3*width,0.0);
  }
  // $B:8J'$$(B
  public Outline[] hidari(Point[] points,ElementAnnotation[] annotations){
    Point p0=points[0],p1=points[1],p2=points[2];
    double w=Math.min(width,0.35*p0.distance(p2));
    double len01=p0.distance(p1),len12=p1.distance(p2);
    double ratio=len01/(len01+len12);
    double theta=p1.minus(p0).theta(p2.minus(p1));
    double s=Math.min(1.0,theta*0.7);
    double w1=(1-s)*ratio*w+s*w;
    double r0=Math.max(0.66666,1.0+0.5*(1.0-1.0/ratio));
    Point a0=p0.

    return curve2(points[0],points[1],points[2],
                 0.6,0.6,
                 width,0.7*width,0.3*width,0.0);
  }
  // $B1&J'$$(B
  public Outline[] migi(Point[] points,ElementAnnotation[] annotations){
    return curve2(points[0],points[1],points[2],
                 0.6,0.6,
                 0.5*width,0.68*width,1.03*width,1.2*width);
  }

}

ktanaka

Powered by ViewCVS 1.0-dev

ViewCVS and CVS Help