Revision: 1.1 - (view) (download) (as text)
1 : | ktanaka | 1.1 | import java.util.*; |
2 : | |||
3 : | public class Bezier extends OutlineComponent{ | ||
4 : | Point p0,p1,p2,p3; | ||
5 : | public Bezier(Point p0,Point p1,Point p2,Point p3){ | ||
6 : | this.p0=p0; this.p1=p1; this.p2=p2; this.p3=p3; | ||
7 : | } | ||
8 : | public Bezier[] divide(){ | ||
9 : | Bezier[] ret=new Bezier[2]; | ||
10 : | Point midp=p0.inter(p3,0.5).inter(p1.inter(p2,0.5),0.75); | ||
11 : | ret[0]=new Bezier(p0,p0.inter(p1,0.5), | ||
12 : | p0.inter(p2,0.5).inter(p1,0.5),midp); | ||
13 : | ret[1]=new Bezier(midp,p3.inter(p1,0.5).inter(p2,0.5), | ||
14 : | p3.inter(p2,0.5),p3); | ||
15 : | return ret; | ||
16 : | } | ||
17 : | public void render(Vector ret,double limit){ | ||
18 : | ret.addElement(p0); | ||
19 : | if(p0.distance(p3)<limit){ | ||
20 : | ret.addElement(p3); | ||
21 : | } | ||
22 : | else{ | ||
23 : | Bezier[] div=divide(); | ||
24 : | div[0].render(ret,limit); | ||
25 : | div[1].render(ret,limit); | ||
26 : | } | ||
27 : | } | ||
28 : | } |
ktanaka Powered by ViewCVS 1.0-dev |
ViewCVS and CVS Help |