3 function clear(){ // void
\r
4 this.array = new Array();
\r
6 Polygons.prototype.clear = clear;
\r
8 function push(polygon){ // void
\r
9 // only a simple check
\r
15 for(var i = 0; i < polygon.array.length; i++){
\r
16 if(polygon.array[i].x < minx){
\r
17 minx = polygon.array[i].x;
\r
19 if(polygon.array[i].x > maxx){
\r
20 maxx = polygon.array[i].x;
\r
22 if(polygon.array[i].y < miny){
\r
23 miny = polygon.array[i].y;
\r
25 if(polygon.array[i].y > maxy){
\r
26 maxy = polygon.array[i].y;
\r
28 if(isNaN(polygon.array[i].x) || isNaN(polygon.array[i].y)){
\r
32 if(error == 0 && minx != maxx && miny != maxy && polygon.array.length >= 3){
\r
33 var newArray = new Array();
\r
34 newArray.push(polygon.array.shift());
\r
35 while(polygon.array.length != 0){
\r
36 var temp = polygon.array.shift();
\r
37 //if(newArray[newArray.length - 1].x != temp.x ||
\r
38 // newArray[newArray.length - 1].y != temp.y){
\r
39 newArray.push(temp);
\r
42 if(newArray.length >= 3){
\r
43 polygon.array = newArray;
\r
44 this.array.push(polygon);
\r
48 Polygons.prototype.push = push;
\r
50 function generateSVG(curve){ // string
\r
52 buffer += "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" baseProfile=\"full\" viewBox=\"0 0 200 200\" width=\"200\" height=\"200\">\n";
\r
54 for(var i = 0; i < this.array.length; i++){
\r
56 buffer += "<path d=\"M ";
\r
57 buffer += this.array[i].array[0].x + "," + this.array[i].array[0].y + " ";
\r
58 for(var j = 1; j < this.array[i].array.length; j++){
\r
59 if(this.array[i].array[j].off == 1){
\r
62 } else if(mode == "Q" && this.array[i].array[j - 1].off != 1){
\r
64 } else if(mode == "L" && j == 1){
\r
67 buffer += this.array[i].array[j].x + "," + this.array[i].array[j].y + " ";
\r
69 buffer += "Z\" fill=\"black\" />\n";
\r
71 buffer += "</svg>\n";
\r
73 buffer += "<g fill=\"black\">\n";
\r
74 for(var i = 0; i < this.array.length; i++){
\r
75 buffer += "<polygon points=\"";
\r
76 for(var j = 0; j < this.array[i].array.length; j++){
\r
77 buffer += this.array[i].array[j].x + "," + this.array[i].array[j].y + " ";
\r
79 buffer += "\" />\n";
\r
82 buffer += "</svg>\n";
\r
86 Polygons.prototype.generateSVG = generateSVG;
\r
88 function generateEPS(){ // string
\r
90 buffer += "%!PS-Adobe-3.0 EPSF-3.0\n";
\r
91 buffer += "%%BoundingBox: 0 -208 1024 816\n";
\r
92 buffer += "%%Pages: 0\n";
\r
93 buffer += "%%Title: Kanji glyph\n";
\r
94 buffer += "%%Creator: GlyphWiki powered by KAGE system\n";
\r
95 buffer += "%%CreationDate: " + new Date() + "\n";
\r
96 buffer += "%%EndComments\n";
\r
97 buffer += "%%EndProlog\n";
\r
99 for(var i = 0; i < this.array.length; i++){
\r
100 for(var j = 0; j < this.array[i].array.length; j++){
\r
101 buffer += (this.array[i].array[j].x * 5) + " " + (1000 - this.array[i].array[j].y * 5 - 200) + " ";
\r
103 buffer += "newpath\nmoveto\n";
\r
105 buffer += "lineto\n";
\r
108 buffer += "closepath\nfill\n";
\r
110 buffer += "%%EOF\n";
\r
113 Polygons.prototype.generateEPS = generateEPS;
\r
116 this.array = new Array();
\r