📄 myoval.java~13~
字号:
package myshape;/** * Title: * Description: * Copyright: Copyright (c) 2002 * Company: * @author * @version 1.0 */import java.awt.*;public class MyOval extends MyShapeAdapter{ public MyOval() { } private MyPoint startPoint,endPoint; //private int radius; public MyOval(MyPoint start,MyPoint end){ startPoint=start; endPoint=end; } private Color color=defaultColor; public void setColor(Color c){ color=c; } public void paint(Graphics g){ int width=endPoint.getX()-startPoint.getX(); int height=endPoint.getY()-startPoint.getY(); g.setColor(color); g.drawOval(startPoint.getX(),startPoint.getY(),width,height); } public MyShape getShape(){ MyOval o=(MyOval)this.clone(); o.startPoint=(MyPoint)startPoint.clone(); o.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 o; } public void moveObject(MyShape s,int x,int y){ MyPoint p1=(MyPoint)s; int tempx=centerPoint.getX()-x; int tempy=centerPoint.getY()-y; //System.out.print("sdfdksd "+tempx); int x1=centerPoint.getX()-endPoint.getX(); int y1=centerPoint.getY()-endPoint.getY(); radius=(int)Math.sqrt(x1*x1+y1*y1); double tempr=Math.sqrt(tempx*tempx+tempy*tempy); p1.moveObject((int)(centerPoint.getX()-tempx/tempr*radius),(int)(centerPoint.getY()-tempy/tempr*radius)); } public void moveObject(int x,int y){ if(movedPoint!=null){ if(!moveOval){ // 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 moveOval=true; public boolean getChanged(){return !moveOval;} public boolean nearTo(int x,int y){ //centerPoint.attachToOthers=false; movedPoint=null; if(startPoint.nearTo(x,y)){ // centerPoint.attachToOthers=true; movedPoint=startPoint; moveOval=false; return false; } if(endPoint.nearTo(x,y)){ movedPoint=endPoint; moveOval=false; return false; } //centerPoint.attachToOthers=true; double a=(startPoint.getX()-endPoint.getX())/2.0; double b=(startPoint.getY()-endPoint.getY())/2.0; double tempx=x-(startPoint.getX()+a); double tempy=y-(startPoint.getY()+a); // tempx=(int)Math.sqrt(Math.abs(tempx-tempy)); // tempx=tempx*tempx/(a*a)+tempy*tempy/(b*b)-1; //System.out.print("OK "+tempx); if(tempx<10 && tempx>-10){ movedPoint=new MyPoint(x,y); moveOval=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 + -