「java画坐标」java绘制坐标系
今天给各位分享java画坐标的知识,其中也会对java绘制坐标系进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java中如何用Point类在坐标的某区域内画出一些点来
- 2、java panel 坐标 绘图
- 3、用JAVA用Graphics2D来绘制一个坐标系,带刻度的那种
- 4、如何用java画一个坐标系,带x,y轴?
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画坐标的信息别忘了在本站进行查找喔。