[wadalabfont-kit] / java / ShowSkeleton.java  

View of /java/ShowSkeleton.java

Parent Directory | Revision Log
Revision: 1.3 - (download) (as text) (annotate)
Thu Jan 4 10:23:56 2001 UTC (23 years, 4 months ago) by ktanaka
Branch: MAIN
CVS Tags: SNAP-20030702, SNAP-20030624, SNAP-20030630, SNAP-20040518, HEAD
Changes since 1.2: +3 -4 lines
MinchoRendererのへんこう瘢雹
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;

public class ShowSkeleton extends Frame implements KeyListener{
  Skeleton skel;
  Renderer renderer;
  ShowSkeleton(){
    super("skeleton");
    addKeyListener(this);
    renderer=MinchoRenderer.chuuMincho;
  }
  public void keyPressed(KeyEvent e){}
  public void keyReleased(KeyEvent e){}
  public void keyTyped(KeyEvent e){}
  public void showOutline(Graphics g,Outline outline){
    Vector ret=new Vector(10);
    OutlineComponent[] components=outline.getComponents();
    int i,len=components.length;
    for(i=0;i<len;i++){
      components[i].render(ret,3.0);
    }
    len=ret.size();
    int[] xs=new int[len], ys=new int[len];
    for(i=0;i<len;i++){
      Point p=(Point)(ret.elementAt(i));
      xs[i]=(int)p.x;
      ys[i]=(int)p.y;
    }
    g.drawPolyline(xs,ys,len);
  }
  public void paint(Graphics g){
    g.setColor(Color.white);
    g.fillRect(0,0,400,400);
    g.setColor(Color.black);
    if(skel!=null){
	Point[] points=skel.getPoints();
	Element[] elements=skel.getElements();
	int i,len=elements.length;
	for(i=0;i<len;i++){
	    int[] elementPoints=elements[i].getPoints();
	    int j,plen=elementPoints.length;
	    Point p0,p1;
	    for(j=0;j<plen-1;j++){
		p0=points[elementPoints[j]];
		p1=points[elementPoints[j+1]];
		g.drawLine((int)p0.getX(),(int)p0.getY(),(int)p1.getX(),(int)p1.getY());
	    }
	}
	g.setColor(Color.red);
	Outline[] outlines=skel.makeOutline(renderer);
	for(i=0;i<outlines.length;i++){
	  showOutline(g,outlines[i]);
	}
    }
  }
  public static void main(String[] args) throws IOException,LispException{
    ShowSkeleton window=new ShowSkeleton();
    window.setSize(400,400);
    window.show();
    LispInputStream lis;
    lis=new LispInputStream(new FileReader(args[0]));
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    LispObject lo=null;
    while((lo=lis.nextObject())!=null){
	System.out.println(lo);
      if(lo.getType()==LispObject.CONS && lo.car().getName().equals("setq")){
        window.skel=LispToSkeleton.lispToSkeleton(lo.cdr().cdr().car().cdr().car());
        window.repaint();
        br.readLine();
      }
    }
  }
}

ktanaka

Powered by ViewCVS 1.0-dev

ViewCVS and CVS Help