[wadalabfont-kit] / java / ShowSkeleton.java  

View of /java/ShowSkeleton.java

Parent Directory | Revision Log
Revision: 1.2 - (download) (as text) (annotate)
Wed Jan 3 02:46:31 2001 UTC (23 years, 4 months ago) by ktanaka
Branch: MAIN
Changes since 1.1: +24 -21 lines
 change little in shogatsu
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);
	for(i=0;i<len;i++){
	    Outline[] outlines=renderer.elementRenderer(points,elements[i]);
	    showOutline(g,outlines[0]);
	    showOutline(g,outlines[1]);
	}
    }
  }
  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