「java画坐标」java绘制坐标系

博主:adminadmin 2022-12-29 12:09:07 756

今天给各位分享java画坐标的知识,其中也会对java绘制坐标系进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java中如何用Point类在坐标的某区域内画出一些点来

设置两个随机数,随机范围在分别在横坐标你纵坐标直接,用随机点画点就可以了

import java.awt.Canvas;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.Graphics;

import java.util.Random;

import javax.swing.JFrame;

public class example {

JFrame random;

Random r;

canvas c;

static class canvas extends Canvas {

public canvas() {

setSize(80, 40);

// TODO Auto-generated constructor stub

}

@Override

public void paint(Graphics g) {

// TODO Auto-generated method stub

super.paint(g);

for (int i = 0; i  30; i++) {

g.fillOval(new Random().nextInt(80), new Random().nextInt(40),

1, 1);

}

}

public static void p() {

JFrame random;

Random r;

canvas c;

random = new JFrame();

c = new canvas();

c.setBackground(Color.white);

random.setSize(300, 100);

random.add(c);

random.setLayout(new FlowLayout());

random.setVisible(true);

}

public static void main(String[] args) {

p();

}

}

}

补充:Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

java panel 坐标 绘图

import java.awt.Container;

import java.awt.Dimension;

import java.awt.FlowLayout;

import java.awt.Graphics2D;

import java.awt.Point;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.geom.Line2D;

import java.util.regex.Pattern;import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.border.BevelBorder;

public class Test extends JFrame implements ActionListener { private JLabel lblFirstPoint = new JLabel("第一个点(x,y):");

private JTextField tfFirstPoint = new JTextField(10);

private JLabel lblSecondPoint = new JLabel("第二个点(x,y):");

private JTextField tfSecondPoint = new JTextField(10);

private JLabel lblThirdPoint = new JLabel("第三个点(x,y):");

private JTextField tfThirdPoint = new JTextField(10);

private JPanel pDrawPanel = new JPanel();

private JLabel lblResult = new JLabel();

private JButton btnDraw = new JButton("确定");

private Test() {

super("绘图");

this.setSize(400, 300);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.setExtendedState(MAXIMIZED_BOTH);

init();

}

private void init() {

Container c = this.getContentPane();

c.setLayout(new FlowLayout(FlowLayout.LEFT));

c.add(lblFirstPoint);

c.add(tfFirstPoint);

c.add(lblSecondPoint);

c.add(tfSecondPoint);

c.add(lblThirdPoint);

c.add(tfThirdPoint);

btnDraw.addActionListener(this);

c.add(btnDraw); c.add(lblResult); pDrawPanel.setBorder(new BevelBorder(1));

pDrawPanel.setPreferredSize(new Dimension(800, 600));

c.add(pDrawPanel);

}

public static void main(String[] args) {

Test t = new Test();

t.setVisible(true);

} @Override

public void actionPerformed(ActionEvent arg0) {

if (validateInput()) {

judgeResult();

}

} private void judgeResult() {

String strFirstPoint = tfFirstPoint.getText().trim();

String strSecondPoint = tfSecondPoint.getText().trim();

String strThirdPoint = tfThirdPoint.getText().trim();

String[] sFirstPoint = strFirstPoint.split("\\s*,\\s*");

Point p1 = new Point(Integer.parseInt(sFirstPoint[0]), Integer.parseInt(sFirstPoint[1]));

String[] sSecondPoint = strSecondPoint.split("\\s*,\\s*");

Point p2 = new Point(Integer.parseInt(sSecondPoint[0]), Integer.parseInt(sSecondPoint[1])); String[] sThirdPoint = strThirdPoint.split("\\s*,\\s*");

Point p3 = new Point(Integer.parseInt(sThirdPoint[0]), Integer.parseInt(sThirdPoint[1]));

if (p1.distance(p2) == 0 p2.distance(p3) == 0) {

lblResult.setText("三点为同一点。");

} else {

if (isInSameLine(p1, p2, p3)) {

lblResult.setText("三点在同一直线上。");

} else {

lblResult.setText("三点构成一个三角形。");

}

} Graphics2D g2 = (Graphics2D) pDrawPanel.getGraphics();

g2.draw(new Line2D.Double(p1, p2));

g2.draw(new Line2D.Double(p2, p3));

g2.draw(new Line2D.Double(p3, p1));

} private boolean isInSameLine(Point p1, Point p2, Point p3) {

if ((p1.getX() == p2.getX() p2.getX() == p3.getX()) ||

(p1.getY() == p2.getY() p2.getY() == p3.getY())){

return true;

} else {

if (p2.getY() == p1.getY()) {

if (((p2.getY() - p1.getY()) / (p3.getY() - p1.getY()) == (p2.getX() - p1.getX()) / (p3.getX() - p1.getX()))) {

return true;

}

} else {

if (((p3.getY() - p1.getY()) / (p2.getY() - p1.getY()) == (p3.getX() - p1.getX()) / (p2.getX() - p1.getX()))) {

return true;

}

}

return false;

}

} private boolean validateInput() {

if (tfFirstPoint.getText().trim().length() == 0) {

JOptionPane.showMessageDialog(this, "第一个点必须输入!", "错误", JOptionPane.ERROR_MESSAGE);

tfFirstPoint.requestFocus();

return false;

}

if (tfSecondPoint.getText().trim().length() == 0) {

JOptionPane.showMessageDialog(this, "第二个点必须输入!", "错误", JOptionPane.ERROR_MESSAGE);

tfSecondPoint.requestFocus();

return false;

}

if (tfThirdPoint.getText().trim().length() == 0) {

JOptionPane.showMessageDialog(this, "第三个点必须输入!", "错误", JOptionPane.ERROR_MESSAGE);

tfThirdPoint.requestFocus();

return false;

} Pattern p = Pattern.compile("^\\d+\\s*,\\s*\\d+$");

if (!p.matcher(tfFirstPoint.getText().trim()).matches()) {

JOptionPane.showMessageDialog(this, "第一个点输入内容不合法!", "错误", JOptionPane.ERROR_MESSAGE);

tfFirstPoint.requestFocus();

return false;

}

if (!p.matcher(tfSecondPoint.getText().trim()).matches()) {

JOptionPane.showMessageDialog(this, "第二个点输入内容不合法!", "错误", JOptionPane.ERROR_MESSAGE);

tfSecondPoint.requestFocus();

return false;

}

if (!p.matcher(tfThirdPoint.getText().trim()).matches()) {

JOptionPane.showMessageDialog(this, "第三个点输入内容不合法!", "错误", JOptionPane.ERROR_MESSAGE);

tfThirdPoint.requestFocus();

return false;

}

return true;

}}

用JAVA用Graphics2D来绘制一个坐标系,带刻度的那种

public class test8888 extends JPanel

{

Polygon po = new Polygon();

Font fn = new Font("宋体", Font.BOLD, 22);

Font fn2 = new Font("宋体", Font.BOLD, 20);

int x = 100;

int y = 100;

int[] pox ={ 90, 100, 100 };

int[] poy ={ 110, 90, 100 };

int[] poxx ={ 100, 100, 110 };

int[] poyy ={ 90, 90, 110 };

int[] poxB = {687,697,707};

int[] poyB = {690,700,700};

int[] poxBB = {687,697,707};

int[] poyBB = {710,700,700};

public test8888()

{

setSize(900, 900);

}

public void paint(Graphics g)

{

super.paintComponent(g);

Graphics2D g2d = (Graphics2D) g;

g2d.setColor(Color.black);

g2d.fillRect(99, 100, 2, 600);

g2d.fillRect(99, 700, 600, 2);

g2d.fillRect(100, 685, 15, 15);

for (int i = 0; i 37; i++)

{

g2d.drawLine(100 + i * 15, 600 + y, y + i * 15, y + 45);

g2d.drawLine(100, 600 + y - i * 15, y + 555, y + 600 - i * 15);

g2d.drawString("0", x - 20, 720);

if (i % 2 == 0 i / 2 != 0)

{

g2d.drawString(String.valueOf(i / 2), x - 20, 705 - i / 2 * 30);

g2d.drawString(String.valueOf(i / 2), x - 5 + i / 2 * 30, 720);

}

}

g2d.setFont(fn2);

g2d.setColor(Color.white);

g2d.drawString("A", 102, 700);

g2d.setFont(fn);

g2d.setColor(Color.black);

g2d.drawString("Y", 80, 140);

g2d.drawString("X", 670, 720);

g2d.fillPolygon(pox,poy,3);

g2d.fillPolygon(poxx,poyy,3);

g2d.fillPolygon(poxB,poyB,3);

g2d.fillPolygon(poxBB,poyBB,3);

g2d.dispose();

}

public static void main(String[] args)

{

JFrame jf = new JFrame();

jf.setSize(900, 900);

jf.setVisible(true);

jf.setDefaultCloseOperation(3);

jf.getContentPane().add(new test8888());

}

}

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

你是要画什么图形?

我这有个画圆的代码:

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)的点~。那么你画几个线段的组合你就可以多画几次。就拿你说画1x=3是Y=1;1X=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个)

java画坐标的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java绘制坐标系、java画坐标的信息别忘了在本站进行查找喔。