亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? markers.java

?? java 作圖的程序
?? JAVA
字號:
package graph;import java.awt.*;import java.util.*;import java.lang.*;import java.io.StreamTokenizer;import java.io.InputStream;import java.io.IOException;import java.net.URL;/*******************************************************************************                      Class  graph.Marker******************************************************************************    Copyright (C) 1996 Leigh Brookshaw****    This program is free software; you can redistribute it and/or modify**    it under the terms of the GNU General Public License as published by**    the Free Software Foundation; either version 2 of the License, or**    (at your option) any later version.****    This program is distributed in the hope that it will be useful,**    but WITHOUT ANY WARRANTY; without even the implied warranty of**    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the**    GNU General Public License for more details.****    You should have received a copy of the GNU General Public License**    along with this program; if not, write to the Free Software**    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.****************************************************************************** class Marker extends Object **        This class is designed to help install and manipulate** markers***************************************************************************//** * This class installs, manipulates and draws markers. * Markers are stroked using the line drawing method of the class Graph. * This means that any stroked figure can become a marker. * * @version $Revision: 1.8 $, $Date: 1996/09/20 00:02:57 $ * @author  Leigh Brookshaw */public class Markers extends Object {/*************************** Protected Variables***********************//** *    index of the last marker loaded */      protected int last;/** *    maximum number of markers allowed */      protected int max  = 10;/** *    An array of vectors. Each element in the array contains the vertex *    vectors for a marker. Marker 1 is at element vert[0]. */      protected Vector vert[];/************************ Constructors********************//** *  The class contructor */      public Markers() {          last = 0;          vert = new Vector[max];      }/** * Instantiate the Marker class and load marker definitions from the parsed URL. * The format of the file is easily worked out from the  * default marker file <a href="marker.txt">marker.txt</a>. * * @param file    The URL of the data file to read * @exception  IOException if there is an error with the IO stream.*/      public Markers(URL file) throws IOException {          this();          LoadMarkers(file);      }/** * Add the definition of a new marker. The arrays contain the vertex * points of the marker. The boolean array is used to define a relative draw  * or move to the vertex. * The first vertex should always be a move (The boolean array is "true"  * for a relative draw. * * @param m The index of the marker. The first marker has index 1. * @param n The number of vertices required to stroke the marker. * @param draw Boolean array containing relative move/draw instructions.  *   "true" is a draw. * @param x Integer array containing the pixel x position of the vertices.  *          All positions are relative to the center of the marker. * @param y Integer array containing the pixel y postions of the vertices.  */      public void AddMarker( int m, int n, boolean draw[], int x[], int y[]) {          MarkerVertex v;          int i;                    if(m < 1 || m > max ) return;          if( n <= 0 ) return;                    m--;          last = m;          vert[m] = new Vector();                    for(i=0; i<n; i++) {               v = new MarkerVertex();               v.draw = draw[i];               v.x    = x[i];               v.y    = y[i];                              vert[m].addElement(v);          }      }/** * Add the definition of a new marker. The new marker is appended onto  * the marker list. The center of the marker is assumed to be at (0,0). * @param n number of move/draw commands * @param draw <i>true</i> if the point is to drawn to, <i>false</i> if * the point is to be moved to. * @param x X pixel to move/draw to. * @param x Y pixel to move/draw to. */      public void AddMarker(int n, boolean draw[], int x[], int y[]) {         AddMarker(last+1,n,draw,x,y);      }/** *  Delete the marker with the given index. the first marker has index 1. * @param n The index of the marker to delete. Markers start at index 1.  */     public void DeleteMarker( int n ) {        if(n<1 || n>max) return;        vert[n-1] = null;          }  /**   * Clear All markers.   */     public void ClearMarkers() {        int i;                if(last == 0) return;        for(i=0; i<max; i++) {           vert[i] = null;        }                last = 0;             }  /**   * This method reads the marker file and loads the marker definitions.   * The format of the file is simple. The following are the keywords.   * <dl>   *   <dt><b>start</b>   *   <dd> starts a new marker definition.   *   <dt><b>end</b>   *   <dd> ends a marker definition.   *   <dt><b>m x y</b>   *   <dd> move to position x,y   *   <dt><b>l x y</b>   *   <dd> line to position x,y   * </dl>   * All line drawing is relative to the previous position. The center    * of the marker is assumed to be at (0,0).   * As always blank lines are ignored and comments begin with a # character.   *   * @param file URL of file to load   * @exception IOException If there is an IO error   */     public void LoadMarkers(URL file) throws IOException {         InputStream is;         StreamTokenizer st;         MarkerVertex v;         is = file.openStream();         st = new StreamTokenizer(is);         st.eolIsSignificant(true);         st.commentChar('#');scan:        while (true) {            switch (st.nextToken()) {              default:                break scan;              case StreamTokenizer.TT_EOL:                break;              case StreamTokenizer.TT_WORD:                   if ("start".equals(st.sval)) {                        vert[last] = new Vector();                   } else                   if ("end".equals(st.sval)) {                        last++;                   } else                   if ("m".equals(st.sval)) {                        v = new MarkerVertex();                        v.draw = false;                        if (st.nextToken() == StreamTokenizer.TT_NUMBER) {                           v.x = (int)st.nval;                           if (st.nextToken() == StreamTokenizer.TT_NUMBER) {                               v.y = (int)st.nval;                               vert[last].addElement(v);                           }                        }                   } else                   if ("l".equals(st.sval)) {                        v = new MarkerVertex();                        v.draw = true;                        if (st.nextToken() == StreamTokenizer.TT_NUMBER) {                           v.x = (int)st.nval;                           if (st.nextToken() == StreamTokenizer.TT_NUMBER) {                               v.y = (int)st.nval;                               vert[last].addElement(v);                           }                        }                    }                 break;             }        }        is.close();}  /**   * draw the marker   * @param g Graphics context   * @param m Index of the marker to draw   * @param scale scale factor. All coordinates are multiplied by this factor.   * @param x Coordinate where to draw the marker   * @param y Coordinate where to draw the marker   */      public void draw(Graphics g, int m, double scale, int x, int y) {          int i;          MarkerVertex mv;          int x0 = x, x1 = x, y0 = y, y1 = y;          Vector v;                              if(m < 1 || m > max ) return;          if(scale <= 0) return;                    v = vert[m-1];          if( v == null) return;          for (i=0; i<v.size(); i++) {             mv = (MarkerVertex)v.elementAt(i);             if( mv.draw ) {                 x1 = x + (int)(mv.x*scale);                 y1 = y + (int)(mv.y*scale);                 g.drawLine(x0,y0,x1,y1);                 x0 = x1;                 y0 = y1;             } else {                 x0 = x + (int)(mv.x*scale);                 y0 = y + (int)(mv.y*scale);             }          }     }}/** * This class is a structure class. It defines one vertex of the marker. */class MarkerVertex extends Object {      boolean draw;      int     x;      int     y;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品一区二区www | 欧美另类高清zo欧美| 678五月天丁香亚洲综合网| 中文字幕欧美国产| 久久99久久精品| 色婷婷久久一区二区三区麻豆| 日韩欧美国产不卡| 五月综合激情网| 色猫猫国产区一区二在线视频| 久久这里只有精品首页| 日韩国产欧美在线播放| 一本色道久久综合精品竹菊| 久久色在线视频| 蜜芽一区二区三区| 欧美午夜精品一区| 中文字幕中文字幕一区| 国产成人综合网| 日韩视频免费直播| 午夜激情一区二区三区| 91九色02白丝porn| 亚洲少妇屁股交4| 成人精品免费网站| 欧美国产日产图区| 成人亚洲精品久久久久软件| 久久久久久毛片| 九九九精品视频| 日韩久久久久久| 久久不见久久见免费视频7| 欧美丰满嫩嫩电影| 亚洲va欧美va人人爽| 欧美日韩黄视频| 亚洲一线二线三线久久久| 色婷婷亚洲婷婷| 亚洲国产欧美在线人成| 欧美日韩黄色一区二区| 天堂va蜜桃一区二区三区漫画版| 欧美日韩一区中文字幕| 午夜精品影院在线观看| 在线不卡的av| 免费在线看一区| 欧美精品一区二区高清在线观看| 久久电影网站中文字幕| 国产女人18毛片水真多成人如厕 | 亚洲国产日韩在线一区模特| 884aa四虎影成人精品一区| 午夜不卡av在线| 日韩女优毛片在线| 粉嫩欧美一区二区三区高清影视| 中文字幕国产精品一区二区| 色综合激情五月| 日本免费在线视频不卡一不卡二| 日韩精品综合一本久道在线视频| 国产一区二区三区久久久| 国产精品久久久久久久久免费桃花 | 欧美一区二区三区公司| 国产高清在线观看免费不卡| 中文字幕一区二区三区四区不卡| 欧美性生活影院| 美女www一区二区| 国产精品久久久久久久岛一牛影视 | 欧美日韩精品二区第二页| 美腿丝袜亚洲三区| 国产精品国产三级国产有无不卡| 色婷婷激情综合| 久热成人在线视频| 亚洲少妇最新在线视频| 日韩一级二级三级| 北条麻妃一区二区三区| 天堂久久久久va久久久久| 国产视频一区在线播放| 欧美视频中文字幕| 粉嫩嫩av羞羞动漫久久久 | 国产精品进线69影院| 欧美日韩国产在线观看| 成人午夜电影小说| 天天综合网天天综合色| 中文字幕一区二区三中文字幕| 8v天堂国产在线一区二区| 成人天堂资源www在线| 日韩不卡免费视频| 亚洲欧美激情一区二区| 久久久久久久免费视频了| 欧美羞羞免费网站| 成人av集中营| 国内精品伊人久久久久av影院| 亚洲欧美国产高清| 国产亚洲短视频| 日韩美女视频在线| 欧美日韩国产天堂| 99久久久久久| 大尺度一区二区| 久久精品国产在热久久| 亚洲成人av电影在线| 亚洲人成人一区二区在线观看| 久久九九全国免费| 日韩欧美激情在线| 91精品久久久久久蜜臀| 在线免费亚洲电影| 99国产精品99久久久久久| 国产精品一区免费在线观看| 日韩av高清在线观看| 亚洲愉拍自拍另类高清精品| 国产精品第一页第二页第三页| 久久久精品综合| 久久综合九色综合97_久久久| 日韩欧美成人一区二区| 91精品欧美久久久久久动漫 | 久久一区二区三区国产精品| 91 com成人网| 欧美一区二区三区啪啪| 欧美日韩国产123区| 欧美性视频一区二区三区| 日本精品一区二区三区高清| 97久久精品人人澡人人爽| 91在线高清观看| 色综合久久久久综合99| 91国模大尺度私拍在线视频| 91麻豆国产在线观看| 色综合天天狠狠| 在线观看区一区二| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 91电影在线观看| 在线精品视频一区二区三四| 欧美唯美清纯偷拍| 日韩一区二区三区精品视频| 日韩一级黄色片| 久久久国产精品不卡| 一区二区中文视频| 一区二区三区.www| 日韩成人午夜电影| 国产电影精品久久禁18| 99久久精品情趣| 欧美撒尿777hd撒尿| 日韩一区二区三区免费观看| 久久精品夜夜夜夜久久| 中文字幕一区二区三区av| 亚洲一级二级三级| 蜜桃一区二区三区在线观看| 国产剧情一区在线| 91蜜桃免费观看视频| 欧美剧在线免费观看网站| 日韩视频一区在线观看| 中文av一区二区| 午夜不卡av在线| 国产盗摄精品一区二区三区在线| eeuss鲁片一区二区三区 | 亚洲一区二区三区视频在线播放| 日韩av电影免费观看高清完整版在线观看 | 亚洲一区二区三区三| 美腿丝袜亚洲色图| 成人爽a毛片一区二区免费| 欧美三级电影一区| 久久精品在这里| 亚洲五码中文字幕| 国产一区二区三区高清播放| 日本久久一区二区三区| 欧美精品一区二区三区很污很色的 | 久久爱www久久做| 99视频超级精品| 欧美成人一区二区| 亚洲男女一区二区三区| 国产一区二区91| 欧美日韩在线免费视频| 国产精品女同互慰在线看| 婷婷开心久久网| a在线欧美一区| 欧美zozo另类异族| 亚洲国产精品自拍| www.爱久久.com| 精品粉嫩aⅴ一区二区三区四区| 亚洲欧美偷拍另类a∨色屁股| 国内久久婷婷综合| 欧美一区二区三区视频在线| 亚洲男人的天堂网| 成人精品亚洲人成在线| 久久综合色综合88| 麻豆精品视频在线| 欧美三级乱人伦电影| 综合分类小说区另类春色亚洲小说欧美 | 一区二区三区欧美在线观看| 国产成人免费视频网站 | 欧美日韩一区二区三区高清| 国产精品久久久久国产精品日日| 激情国产一区二区| 777奇米成人网| 亚洲观看高清完整版在线观看| 99国产精品国产精品久久| 中文字幕不卡的av| 懂色av一区二区夜夜嗨| 国产日产欧产精品推荐色 | 91天堂素人约啪| 综合亚洲深深色噜噜狠狠网站| 成人福利在线看| 中文字幕av不卡| 成人深夜在线观看| 国产精品乱人伦| 91在线视频在线| 一区二区在线观看av| 欧美中文一区二区三区| 亚洲电影一级片|