如何用java画一个坐标系,带x,y轴?

如何用java画一个坐标系,带x,y轴?,第1张

你是要画什么图形?

我这有个画圆的代码:

package com.java

import javax.swing.*

import java.awt.*

public class demo9 extends JFrame{

Mypanel mypanel=null

public static void main(String args[]){

demo9 a = new demo9()

}

public demo9(){

mypanel = new Mypanel()

this.add(mypanel)

this.setSize(400,400)

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

this.setVisible(true)

}

class Mypanel extends JPanel{

public void paint(Graphics g){

g.drawOval(30, 30, 50, 50)//30,30是代表圆心的位置。50,50是半径。(如果你把50,50改成2个不相等的就是话椭圆),具体画别的图形你可以参照Graphics类,其中用的多的还有drawLine(画直线)和drawRect(画矩形)的方法

}

}

}

补充:首先你要理解drawLine(x1,x2,y1,y2)中是画坐标坐标(x1,y1)到(x2,y2)的点~。那么你画几个线段的组合你就可以多画几次。就拿你说画1<x<=3是Y=11<X<=6,Y=5的两条直线你就可以看做是画点(1,1)到点(3,1)的直线。你就drawline(1,3,1,1)第二条就drawLine(1,5,6,5)就可以了~~还有就是JAVA的画图板是以画板的左上角为起点的,向电脑屏幕,x是右边增加,Y是往下面增加。。画直线的单位是像素为单位的,(假如你电脑显示屏分辨率是800*600的话,那么你X轴就有800个像素,Y就有600个)

Point getLocation()

获得组件的位置,形式是指定组件左上角的一个点。

其返回值是一个Point对象,包含着X坐标和Y坐标

接下来可以使用Point的成员

double getX() 以双精度型返回点的 X 坐标。

double getY() 以双精度型返回点的 Y 坐标。

例如:有组件JButton:btnTest

Point p = btnTest.getLocation()

double x = p.getX()

double y = p.getY()

这样可以得到按钮的x坐标和y坐标

setColor:设置画笔的颜色。

drawLine:在指定坐标的(x1,y1)与(x2,y2)两点之间画条线段。

drawRect:以坐标点(x,y)为左上角,绘制指定宽高的矩形边框。

fillRect:以坐标点(x,y)为左上角,绘制指定宽高的矩形区域。

drawRoundRect:以坐标点(x,y)为左上角,绘制指定宽高和指定圆角的圆角矩形边框。

fillRoundRect:以坐标点(x,y)为左上角,绘制指定宽高和指定圆角的圆角矩形区域。

drawOval:以坐标点(x,y)为外切矩形的左上角,绘制指定横纵半径的椭圆轮廓。注意,如果横纵半径的数值相等,此时椭圆就变成了圆形。

fillOval:以坐标点(x,y)为外切矩形的左上角,绘制指定横纵半径的椭圆区域。

drawArc:以坐标点(x,y)为外切矩形的左上角,绘制指定横纵半径和指定角度的圆弧。

fillArc:以坐标点(x,y)为外切矩形的左上角,绘制指定横纵半径和指定角度的扇形。

setFont:设置画笔的字体。

drawString:在当前位置的横纵偏移距离处绘制文本。

此外,Graphics也支持几种简单的管理 *** 作,包括平移画笔、擦除区域、裁剪画布等功能,对应的处理方法说明如下:

translate:平移画笔至坐标点(x,y)。

clearRect:清除某块矩形区域,该矩形以坐标点(x,y)为左上角,且符合指定宽高。

clipRect:裁剪某块矩形区域,该矩形以坐标点(x,y)为左上角,且符合指定宽高。该方法的执行效果与clearRect正好相反,clearRect方法清除了矩形内部的所有图案;而clipRect方法清除了矩形外部的所有图案,只留下矩形内部的图案。

绘制图案与字符串的过程与绘制图像一样,都是重写自定义控件的paint方法,在该方法中调用画笔对象的各种绘图方法。接下来按照之前的图像视图依样画瓢定义一个绘画视图DrawView,变动之处在于绘制控件的paint方法,并据此演示几种图案的实现效果。首先准备绘制一条黑色线段,线段的起点位于控件的左上角,终点位于控件的右下角,则相应的绘制方法示例如下:

1

2

3

g.setColor(Color.BLACK)// 设置画笔的颜色为黑色

// 在指定坐标的(x1,y1)与(x2,y2)两点之间画条线段

g.drawLine(0, 0, getWidth(), getHeight())

主界面的代码比较简单,有关绘画视图的调用可参考如下的代码片段:

1

2

3

4

5

Panel panelCenter = new Panel()// 创建中央面板

DrawView draw = new DrawView()// 创建一个绘画视图

draw.setSize(360, 180)// 设置绘画视图的宽高

panelCenter.add(draw)// 在中央面板上添加绘画视图

frame.add(panelCenter, BorderLayout.CENTER)// 把中央面板添加到窗口的中间位置

运行修改后的测试代码,d出的线段绘制窗口界面如下图所示。

接着绘制一个矩形边框,假设边框为红色,则对应的绘制方法如下所示:

1

2

3

g.setColor(Color.RED)// 设置画笔的颜色为红色

// 以坐标点(x,y)为左上角,绘制指定宽高的矩形边框

g.drawRect(10, 10, getWidth() - 20, getHeight() - 20)

同样运行测试界面代码,d出的矩形绘制窗口界面如下图所示。

再绘制一个绿色的圆角矩形,但它是实心的,此时绘制过程应当调用fillRoundRect方法:

1

2

3

g.setColor(Color.GREEN)// 设置画笔的颜色为绿色

// 以坐标点(x,y)为左上角,绘制指定宽高和指定圆角的圆角矩形区域

g.fillRoundRect(10, 10, getWidth() - 20, getHeight() - 20, 50, 50)

运行主界面的测试代码,d出的圆角矩形绘制窗口如下图所示。

继续绘制一个蓝色的椭圆轮廓,注意它是空心的,此时绘制过程应当调用drawOval方法:

1

2

3

g.setColor(Color.BLUE)// 设置画笔的颜色为蓝色

// 以坐标点(x,y)为外切矩形的左上角,绘制指定横纵半径的椭圆轮廓

g.drawOval(10, 10, getWidth() - 20, getHeight() - 20)

运行主界面的测试代码,d出的椭圆绘制窗口界面如下图所示。

还可以绘制一个橙色的扇形,所谓扇形是由某段圆弧连接两端的横纵半径组成,因此它相当于实心的圆弧,此时绘制过程应当调用dfillArc方法:

1

2

3

g.setColor(Color.ORANGE)// 设置画笔的颜色为橙色

// 以坐标点(x,y)为外切矩形的左上角,绘制指定横纵半径和指定角度的扇形

g.fillArc(10, 10, getWidth() - 20, getHeight() - 20, 0, 90)

运行主界面的测试代码,d出的扇形绘制窗口界面如下图所示。

最后使用画笔绘制几个文字,同时指定这段文字的颜色、字体以及大小,则对应的绘制方法如下所示:

1

2

3

g.setColor(Color.BLACK)// 设置画笔的颜色为黑色

g.setFont(new Font("大号粗体", Font.BOLD, 50))// 设置画笔的字体

g.drawString("春天花会开", 50, 50)// 在当前位置的横纵偏移距离处绘制文本

运行主界面的测试代码,d出的文字绘制窗口界面如下图所示。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12057420.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存