⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysegment.java~6~

📁 Java画版程序。......................要求变态。
💻 JAVA~6~
字号:
package myshape;import java.awt.*;import myframe.*;/** * Title: * Description: * Copyright:    Copyright (c) 2002 * Company: * @author * @version 1.0 */public class MySegment extends MyShapeAdapter{  public MySegment() {  }  private MyPoint startPoint,endPoint; //private int radius; public MySegment(MyPoint start,MyPoint end){ startPoint=start; endPoint=end; } private Color color=super.defaultColor; private Color defaultColor=super.defaultColor; public  void setColor(Color c){   color=c; } public Color getColor(){   return color; } public void setDefaultColor(Color c){   defaultColor=c; } public Color getDefaultColor(){   return defaultColor; } public void paint(Graphics g){   g.setColor(color);   g.drawLine(startPoint.getX(),startPoint.getY(),endPoint.getX(),endPoint.getY()); }  public MyShape getShape(){   MySegment s=(MySegment)this.clone();   s.startPoint=(MyPoint)startPoint.clone();   s.endPoint=(MyPoint)endPoint.clone();   //MyLine l=(MyLine)this.clone();   //l.startPoint.moveObject(startPoint.getX()+4,centerPoint.getY()+4);   //l.endPoint.moveObject(endPoint.getX()+4,endPoint.getY()+4);   return s; } public void moveObject(MyShape s,int x,int y){   MyPoint p1=(MyPoint)s;   int tempx=startPoint.getX()-endPoint.getX();   int tempy=startPoint.getY()-endPoint.getY();   if(tempx==0){     if((y-startPoint.getY())*(y-endPoint.getY())>0)      return;    p1.moveObject(startPoint.getX(),y);   }   else if(tempy==0){   if((x-startPoint.getX())*(x-endPoint.getX())>0)      return;    p1.moveObject(x,startPoint.getY());   }   else{   if((x-startPoint.getX())*(x-endPoint.getX())>0)     return;    double k1=tempy*1.0/tempx;    double k2=-1/k1;    double temp1=startPoint.getY()-k1*startPoint.getX();    double temp2=y-k2*x;    p1.moveObject((int)((temp1-temp2)/(k2-k1)),(int)((k2*temp1-k1*temp2)/(k2-k1)));   } } public void moveObject(int x,int y){   if(movedPoint!=null){      if(!moveLine){      // movedPoint.moveObject(x,y);      }      else{        int tempx=x-movedPoint.getX();        int tempy=y-movedPoint.getY();        movedPoint=new MyPoint(x,y);        startPoint.moveObject(tempx+startPoint.getX(),tempy+startPoint.getY());        endPoint.moveObject(tempx+endPoint.getX(),tempy+endPoint.getY());      }   } } private MyPoint movedPoint; private boolean moveLine=false; public boolean nearTo(int x,int y){ //centerPoint.attachToOthers=false;  movedPoint=null;  if(startPoint.nearTo(x,y)){   //  centerPoint.attachToOthers=true;    // movedPoint=startPoint;     moveLine=false;     return false;  }  if(endPoint.nearTo(x,y)){     //movedPoint=endPoint;     moveLine=false;     return false;  }  //centerPoint.attachToOthers=true;  int tempx=(startPoint.getX()-x)*(endPoint.getX()-x);  int tempy=(startPoint.getY()-y)*(endPoint.getY()-y);  if(tempx<=0 && tempy<=0){    tempx=(startPoint.getX()-x)*(endPoint.getY()-y);    tempy=(startPoint.getY()-y)*(endPoint.getX()-x);    tempx=(int)Math.sqrt(Math.abs(tempx-tempy)); // System.out.print("OK  "+tempx);    if(tempx<20){     movedPoint=new MyPoint(x,y);     moveLine=true;     return true;    }  }  return false; } public String toString(){   String s="线段";   return s;  } public MyPoint getPoint(){   return movedPoint; }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -