📄 draw.java
字号:
if(dy>0)k=3;
else k=4;
/*在屏幕上画*/
if(isXOR) g.setXORMode(c);
else
{
g.setPaintMode();
g.setColor(c);
}
switch(k){
case 1:e=-dx;
x=xu0;y=yu0;
g.fillOval(xu0,yu0,1,1);
while(x<=xu1){
x++;e=e+2*dy;
if(e>=0){y++;e=e-2*dx;}
n++;
if(n%16>1) mark=0x8000>>(n%16-1);
if(n%16==1) mark=0x8000;
if(n%16==0) mark=0x0001;
if((linestyle & mark)!=0)
switch(point)
{
case 1:g.fillOval(x,y,1,1);
break;
case 2:g.fillOval(x,y,1,1);
g.fillOval(x,y+1,1,1);
break;
case 3:g.fillOval(x,y,1,1);
g.fillOval(x,y+1,1,1);
g.fillOval(x,y-1,1,1);
break;
case 4: {if(point%2==0){
for(j=0;j<=j/2;j++)
g.fillOval(x,y+j,1,1);
g.fillOval(x,y-j+1,1,1);}
else {for(j=0;j<=j/2;j++)
g.fillOval(x,y+j,1,1);
g.fillOval(x,y-j,1,1);}
break;}
}
}break;
case 2:e=-dx;
x=xu0;y=yu0;
g.fillOval(xu0,yu0,1,1);
while(x<=xu1){
x++;e=e-2*dy;
if(e>=0){y--;e=e-2*dx;}
n++;
if(n%16>1) mark=0x8000>>(n%16-1);
if(n%16==1) mark=0x8000;
if(n%16==0) mark=0x0001;
if((linestyle & mark)!=0)
switch(point)
{
case 1:g.fillOval(x,y,1,1);
break;
case 2:g.fillOval(x,y,1,1);
g.fillOval(x,y+1,1,1);
break;
case 3:g.fillOval(x,y,1,1);
g.fillOval(x,y+1,1,1);
g.fillOval(x,y-1,1,1);
break;
case 4: {if(point%2==0){
for(j=0;j<=j/2;j++)
g.fillOval(x,y+j,1,1);
g.fillOval(x,y-j+1,1,1);}
else {for(j=0;j<=j/2;j++)
g.fillOval(x,y+j,1,1);
g.fillOval(x,y-j,1,1);}
break;}}
}break;
case 3:e=-dy;
x=xu0;y=yu0;
while(y<=yu1){
g.fillOval(xu0,yu0,1,1);
y++;e=e+2*dx;
if(e>=0){x++;e=e-2*dy;}
n++;
if(n%16>1) mark=0x8000>>(n%16-1);
if(n%16==1) mark=0x8000;
if(n%16==0) mark=0x0001;
if((linestyle & mark)!=0)
switch(point)
{
case 1:g.fillOval(x,y,1,1);
break;
case 2:g.fillOval(x,y,1,1);
g.fillOval(x+1,y,1,1);
break;
case 3:g.fillOval(x,y,1,1);
g.fillOval(x+1,y,1,1);
g.fillOval(x-1,y,1,1);
break;
case 4: {if(point%2==0){
for(j=0;j<=j/2;j++)
g.fillOval(x+j,y,1,1);
g.fillOval(x-j+1,y,1,1);}
else {for(j=0;j<=j/2;j++)
g.fillOval(x+j,y,1,1);
g.fillOval(x-j,y,1,1);}
break;}}
}break;
case 4:e=-dy;
x=xu0;y=yu0;
while(y>=yu1){
g.fillOval(xu0,yu0,1,1);
y--;e=e+2*dx;
if(e>=0){x++;e=e+2*dy;}
n++;
if(n%16>1) mark=0x8000>>(n%16-1);
if(n%16==1) mark=0x8000;
if(n%16==0) mark=0x0001;
if((linestyle & mark)!=0)
switch(point)
{
case 1:g.fillOval(x,y,1,1);
break;
case 2:g.fillOval(x,y,1,1);
g.fillOval(x+1,y,1,1);
break;
case 3:g.fillOval(x,y,1,1);
g.fillOval(x+1,y,1,1);
g.fillOval(x-1,y,1,1);
break;
case 4: {if(point%2==0){
for(j=0;j<=j/2;j++)
g.fillOval(x+j,y,1,1);
g.fillOval(x-j+1,y,1,1);}
else {for(j=0;j<=j/2;j++)
g.fillOval(x+j,y,1,1);
g.fillOval(x-j,y,1,1);}
break;}
}
}break;
}
//在缓冲区中画
mark=0x8000;n=0;
x=xu0;y=yu0;
g=buffer.getGraphics();
if(isXOR) g.setXORMode(c);
else
{
g.setPaintMode();
g.setColor(c);
}
switch(k){
case 1:e=-dx;
x=xu0;y=yu0;
g.fillOval(xu0,yu0,1,1);
while(x<xu1){
x++;e=e+2*dy;
if(e>=0){y++;e=e-2*dx;}
n++;
if(n%16>1) mark=0x8000>>(n%16-1);
if(n%16==1) mark=0x8000;
if(n%16==0) mark=0x0001;
if((linestyle & mark)!=0)
switch(point)
{
case 1:g.fillOval(x,y,1,1);
break;
case 2:g.fillOval(x,y,1,1);
g.fillOval(x+1,y,1,1);
break;
case 3:g.fillOval(x,y,1,1);
g.fillOval(x+1,y,1,1);
g.fillOval(x-1,y,1,1);
break;
case 4: {if(point%2==0){
for(j=0;j<=j/2;j++)
g.fillOval(x,y+j,1,1);
g.fillOval(x,y-j+1,1,1);}
else {for(j=0;j<=j/2;j++)
g.fillOval(x,y+j,1,1);
g.fillOval(x,y-j,1,1);}
break;}
}
}break;
case 2:e=-dx;
x=xu0;y=yu0;
g.fillOval(xu0,yu0,1,1);
while(x<xu1){
x++;e=e-2*dy;
if(e>=0){y--;e=e-2*dx;}
n++;
if(n%16>1) mark=0x8000>>(n%16-1);
if(n%16==1) mark=0x8000;
if(n%16==0) mark=0x0001;
if((linestyle & mark)!=0)
switch(point)
{
case 1:g.fillOval(x,y,1,1);
break;
case 2:g.fillOval(x,y,1,1);
g.fillOval(x+1,y,1,1);
break;
case 3:g.fillOval(x,y,1,1);
g.fillOval(x+1,y,1,1);
g.fillOval(x-1,y,1,1);
break;
case 4: {if(point%2==0){
for(j=0;j<=j/2;j++)
g.fillOval(x,y+j,1,1);
g.fillOval(x,y-j+1,1,1);}
else {for(j=0;j<=j/2;j++)
g.fillOval(x,y+j,1,1);
g.fillOval(x,y-j,1,1);}
break;}
}
}break;
case 3:e=-dy;
x=xu0;y=yu0;
while(y<yu1){
g.fillOval(xu0,yu0,1,1);
y++;e=e+2*dx;
if(e>=0){x++;e=e-2*dy;}
n++;
if(n%16>1) mark=0x8000>>(n%16-1);
if(n%16==1) mark=0x8000;
if(n%16==0) mark=0x0001;
if((linestyle & mark)!=0)
switch(point)
{
case 1:g.fillOval(x,y,1,1);
break;
case 2:g.fillOval(x,y,1,1);
g.fillOval(x+1,y,1,1);
break;
case 3:g.fillOval(x,y,1,1);
g.fillOval(x+1,y,1,1);
g.fillOval(x-1,y,1,1);
break;
case 4: {if(point%2==0){
for(j=0;j<=j/2;j++)
g.fillOval(x+j,y,1,1);
g.fillOval(x-j+1,y,1,1);}
else {for(j=0;j<=j/2;j++)
g.fillOval(x+j,y,1,1);
g.fillOval(x-j,y,1,1);}
break;}
}
}break;
case 4:e=-dy;
x=xu0;y=yu0;
while(y<yu1){
g.fillOval(xu0,yu0,1,1);
y--;e=e+2*dx;
if(e>=0){x++;e=e+2*dy;}
n++;
if(n%16>1) mark=0x8000>>(n%16-1);
if(n%16==1) mark=0x8000;
if(n%16==0) mark=0x0001;
if((linestyle & mark)!=0)
switch(point)
{
case 1:g.fillOval(x,y,1,1);
break;
case 2:g.fillOval(x,y,1,1);
g.fillOval(x+1,y,1,1);
break;
case 3:g.fillOval(x,y,1,1);
g.fillOval(x+1,y,1,1);
g.fillOval(x-1,y,1,1);
break;
case 4: {if(point%2==0){
for(j=0;j<=j/2;j++)
g.fillOval(x+j,y,1,1);
g.fillOval(x-j+1,y,1,1);}
else {for(j=0;j<=j/2;j++)
g.fillOval(x+j,y,1,1);
g.fillOval(x-j,y,1,1);}
break;}
}
}break;
}
}
}//直线类结束
//定义圆类
class DrawCircle
{
public void midCircle1(Graphics g,Image buffer,Color c,int linestyle,int point,int x0,int y0,int r){
int x,mark=0x8000,n=0;
int y;
g.setPaintMode();
g.setColor(c);
x=0; y=r;
//在屏幕画圆
g.fillOval(x0,y0,3,3); //画圆心
//显示圆弧上的八个对称点
g.fillOval(x+x0,y+y0,1,1);
g.fillOval(x+x0,-y+y0,1,1);
g.fillOval(-x+x0,y+y0,1,1);
g.fillOval(-x+x0,-y+y0,1,1);
g.fillOval(-y+x0,-x+y0,1,1);
g.fillOval(y+x0,-x+y0,1,1);
g.fillOval(y+x0,x+y0,1,1);
g.fillOval(-y+x0,x+y0,1,1);
while(x<=y){
y=(int)(Math.sqrt(r*r-x*x)+0.5);
x++;
n++;
if(n%16>1) mark=0x8000>>(n%16-1);
if(n%16==1) mark=0x8000;
if(n%16==0) mark=0x0001;
if((linestyle & mark)!=0)
switch(point){
case 1:g.fillOval(x+x0,y+y0,1,1);
g.fillOval(x+x0,-y+y0,1,1);
g.fillOval(-x+x0,y+y0,1,1);
g.fillOval(-x+x0,-y+y0,1,1);
g.fillOval(-y+x0,-x+y0,1,1);
g.fillOval(y+x0,-x+y0,1,1);
g.fillOval(y+x0,x+y0,1,1);
g.fillOval(-y+x0,x+y0,1,1);
break;
case 2:g.fillOval(x+x0,y+y0,1,1);
g.fillOval(x+x0,y+y0+1,1,1);
g.fillOval(x+x0,-y+y0,1,1);
g.fillOval(x+x0,-y+y0+1,1,1);
g.fillOval(-x+x0,y+y0,1,1);
g.fillOval(-x+x0,y+y0+1,1,1);
g.fillOval(-x+x0,-y+y0,1,1);
g.fillOval(-x+x0,-y+y0+1,1,1);
g.fillOval(-y+x0,-x+y0,1,1);
g.fillOval(-y+x0,-x+y0+1,1,1);
g.fillOval(y+x0,-x+y0,1,1);
g.fillOval(y+x0,-x+y0+1,1,1);
g.fillOval(y+x0,x+y0,1,1);
g.fillOval(y+x0,x+y0+1,1,1);
g.fillOval(-y+x0,x+y0,1,1);
g.fillOval(-y+x0,x+y0+1,1,1);
break;
case 3:g.fillOval(x+x0,y+y0,1,1);
g.fillOval(x+x0,y+y0+1,1,1);
g.fillOval(x+x0,y+y0-1,1,1);
g.fillOval(x+x0,-y+y0,1,1);
g.fillOval(x+x0,-y+y0+1,1,1);
g.fillOval(x+x0,-y+y0-1,1,1);
g.fillOval(-x+x0,y+y0,1,1);
g.fillOval(-x+x0,y+y0+1,1,1);
g.fillOval(-x+x0,y+y0-1,1,1);
g.fillOval(-x+x0,-y+y0,1,1);
g.fillOval(-x+x0,-y+y0+1,1,1);
g.fillOval(-x+x0,-y+y0-1,1,1);
g.fillOval(-y+x0,-x+y0,1,1);
g.fillOval(-y+x0,-x+y0+1,1,1);
g.fillOval(-y+x0,-x+y0-1,1,1);
g.fillOval(y+x0,-x+y0,1,1);
g.fillOval(y+x0,-x+y0+1,1,1);
g.fillOval(y+x0,-x+y0-1,1,1);
g.fillOval(y+x0,x+y0,1,1);
g.fillOval(y+x0,x+y0+1,1,1);
g.fillOval(y+x0,x+y0-1,1,1);
g.fillOval(-y+x0,x+y0,1,1);
g.fillOval(-y+x0,x+y0+1,1,1);
g.fillOval(-y+x0,x+y0-1,1,1);
break;}
//显示圆弧上的八个对称点
g.fillOval(x+x0,y+y0,1,1);
g.fillOval(x+x0,-y+y0,1,1);
g.fillOval(-x+x0,y+y0,1,1);
g.fillOval(-x+x0,-y+y0,1,1);
g.fillOval(-y+x0,-x+y0,1,1);
g.fillOval(y+x0,-x+y0,1,1);
g.fillOval(y+x0,x+y0,1,1);
g.fillOval(-y+x0,x+y0,1,1);
}//while
//在缓冲区画圆
g=buffer.getGraphics();
g.setPaintMode();
g.setColor(c);
x=0; y=r;
g.fillOval(x0,y0,3,3); //画圆心
//显示圆弧上的八个对称点
g.fillOval(x+x0+1,y+y0,1,1);
g.fillOval(x+x0,y+y0,1,1);
g.fillOval(x+x0,-y+y0,1,1);
g.fillOval(-x+x0,y+y0,1,1);
g.fillOval(-x+x0,-y+y0,1,1);
g.fillOval(-y+y0,-x+x0,1,1);
g.fillOval(y+y0,-x+x0,1,1);
g.fillOval(y+y0,x+x0,1,1);
g.fillOval(-y+y0,x+x0,1,1);
while(x<=y){
y=(int)(Math.sqrt(r*r-x*x)+0.5);
x++;
n++;
if(n%16>1) mark=0x8000>>(n%16-1);
if(n%16==1) mark=0x8000;
if(n%16==0) mark=0x0001;
if((linestyle & mark)!=0)
switch(point){
case 1:g.fillOval(x+x0,y+y0,1,1);
g.fillOval(x+x0,-y+y0,1,1);
g.fillOval(-x+x0,y+y0,1,1);
g.fillOval(-x+x0,-y+y0,1,1);
g.fillOval(-y+x0,-x+y0,1,1);
g.fillOval(y+x0,-x+y0,1,1);
g.fillOval(y+x0,x+y0,1,1);
g.fillOval(-y+x0,x+y0,1,1);
break;
case 2:g.fillOval(x+x0,y+y0,1,1);
g.fillOval(x+x0,y+y0+1,1,1);
g.fillOval(x+x0,-y+y0,1,1);
g.fillOval(x+x0,-y+y0+1,1,1);
g.fillOval(-x+x0,y+y0,1,1);
g.fillOval(-x+x0,y+y0+1,1,1);
g.fillOval(-x+x0,-y+y0,1,1);
g.fillOval(-x+x0,-y+y0+1,1,1);
g.fillOval(-y+x0,-x+y0,1,1);
g.fillOval(-y+x0,-x+y0+1,1,1);
g.fillOval(y+x0,-x+y0,1,1);
g.fillOval(y+x0,-x+y0+1,1,1);
g.fillOval(y+x0,x+y0,1,1);
g.fillOval(y+x0,x+y0+1,1,1);
g.fillOval(-y+x0,x+y0,1,1);
g.fillOval(-y+x0,x+y0+1,1,1);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -