
正文
正负算法画圆java代码 正负算法画圆java代码怎么写
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
在Java中如何用程序画一个圆
使用java画圆要用到绘图类Graphics,下面是实例代码和运行效果:
package com.dikea.demo01;
import java.awt.*;
import javax.swing.*;
// java绘图原理
public class demo_01 extends JFrame {
MyPanel mp = null;
public static void main(String[] args) {
// TODO 自动生成的方法存根
demo_01 demo01 = new demo_01();
}
public demo_01(){
mp = new MyPanel();
this.add(mp);
this.setSize(400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
// 定义一个MyPanel面板,用于绘图区域
class MyPanel extends JPanel{
//覆盖JPanel
// Graphics 是绘图的重要类,可以理解成一支画笔
public void paint(Graphics g){
// 1. 调用父类函数完成初始化任务
// 这句话不可以少
super.paint(g);
// 先画出一个圆圈
g.drawOval(100, 100, 30, 30);
}
}
代码复制进ide编程工具,运行效果如下:
相关问答
Q1: 在java小程序中如何运用对称性画一个完整的圆。有正负法和bresenham_arc()方法,但画出来的是弧,求告知
#includewindows.h
#ifdef __APPLE__
#include GLUT/glut.h
#else
#include GL/glut.h
#endif
#includestdio.h
#includestdlib.h
#includemath.h
void init (void)
{
glClearColor (1.0, 1.0, 1.0, 0.0); // Set display-window color to white.
glMatrixMode (GL_PROJECTION); // Set projection parameters.
gluOrtho2D (0.0, 200.0, 0.0, 150.0);
}
int round(const float a)
{
return (int)(a+0.5);
}
void lineDDA(int x0,int y0,int xEnd,int yEnd)
{
glColor 3f(0.0,0.0,1.0);
glPointSize(3.0f);
int dx = xEnd - x0;
int dy = yEnd - y0;
int steps,k;
float xIncrement,yIncrement,x = x0,y = y0;
if(fabs (dx) fabs(dy))
steps = fabs(dy);
else
steps = fabs(dx);
xIncrement = (float)(dx)/(float)(steps);
yIncrement = (float)(dy)/(float)(steps);
glBegin(GL_POINTS);
glVertex2i(round(x),round(y));
glEnd();
glFlush();
for (k=0;ksteps;k++)
{
x += xIncrement;
y += yIncrement;
glBegin(GL_POINTS);
glVertex2i(round(x),round(y));
glEnd();
glFlush();
}
}
void lineBres(int x0,int y0,int xEnd,int yEnd)
{
glColor3f(1.0,0.0,0.0);
glPointSize(3.0f);
int dx = fabs(xEnd - x0);
int dy = fabs(yEnd - y0);
int p = 2*dy-dy;
int twoDy = 2*dy,twoDyMinusDx = 2*(dy - dx);
int x,y;
if (x0xEnd)
{
x = xEnd;
y = yEnd;
xEnd = x0;
}
else
{
x = x0;
y = y0;
}
glBegin(GL_POINTS);
glVertex2i(x,y);
glEnd();
glFlush();
while(x xEnd)
{
x++;
if (p 0)
p += twoDy;
else
{
y++;
p += twoDyMinusDx;
}
glBegin(GL_POINTS);
glVertex2i(x,y);
glEnd();
glFlush();
}
}
void pointFun(void)
{
int x0 = 0,y0 = 0,xEnd = 100,yEnd = 100;
//scanf("%d%d%d%d",x0,y0,xEnd,yEnd);
lineDDA(x0,y0+1,xEnd,yEnd);//调用DDA画线函数
lineBres(x0+1,y0,xEnd,yEnd);//调用Bresenham画线函数
}
int main (int argc, char** argv)
{
glutInit (argc, argv); // Initialize GLUT.
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); // Set display mode.
glutInitWindowPosition (50, 100); // Set top-left display-window position.
glutInitWindowSize (800, 600); // Set display-window width and height.
//glutFullScreen();
glutCreateWindow ("An Example OpenGL Program"); // Create display window.
init(); // Execute initialization procedure.
glutDisplayFunc (pointFun); // Send graphics to display window.
glutMainLoop ( );// Send graphics to display window. // Display everything and wait.
return 0;
}
Q2: 用java代码 画圆类
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
class MyCanvas extends Canvas
{
int x,y,r,n;
int x0,y0;
MyCanvas()
{
setSize(圆心位置,圆心位置);
setBackground(Color.red);
}
public void setX(int x)
{
this.x=x;
}
public void setY(int y)
{
this.y=y;
}
public void setR(int r)
{
this.r=r;
}
public void setN(int n)
{
this.n=n;
}
public void paint(Graphics g1)
{
for(int i=0;i=360;i=i+360/n)
{
x0 = (int)(x+r*Math.cos(i));
y0 = (int)(y+r*Math.sin(i));
g1.drawString("*",x0,y0);}
}
}
public class e1 extends Applet implements ActionListener
{
MyCanvas canvas;
TextField inputR,inputX,inputY,inputN;
Label label1,label2,label3;
Button b1,b2;
public void init()
{
canvas = new MyCanvas();
inputR = new TextField(6);
inputX = new TextField(6);
inputY = new TextField(6);
inputN = new TextField(6);
b1 = new Button("确定");
b1.addActionListener(this);
label1 = new Label("输入位置坐标:");
label2 = new Label("输入半径:");
label3 = new Label("输入要打印的*数:");
add(label1);
add(inputX);
add(inputY);
add(label2);
add(inputR);
add(label3);
add(inputN);
add(b1);
add(canvas);
}
public void actionPerformed(ActionEvent e)
{
int x=0,y=0,n=0,r=0;
try
{
x=Integer.valueOf(inputX.getText()).intValue();
y=Integer.valueOf(inputY.getText()).intValue();
n=Integer.valueOf(inputN.getText()).intValue();
r=Integer.valueOf(inputR.getText()).intValue();
canvas.setX(x);
canvas.setY(y);
canvas.setR(r);
canvas.setN(n);
canvas.repaint();
}
catch(NumberFormatException ee)
{
x = 0;
y = 0;
r = 0;
n = 0;
}
}
}
关于正负算法画圆java代码和正负算法画圆java代码怎么写的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






