① java求坐标系中任意两点的距离取出最短距离
Point p1 = new Point(x1,y1);
Point p2 = new Point(x2,y2);
double gap = Math.sqrt(Math.pow(p1.y-p2.y,2) + Math.pow(p1.x-p2.x,2));
② 用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直角坐标系中,两点的中点及长度距离。
public class Point {
private double x;//横坐标x
private double y;//纵坐标y
public Point() {//默认构造为(0,0)
this(0.0D, 0.0D);
}
public Point(double xCoordinate, double yCoordinate){//带参数构造
this.x = xCoordinate;
this.y = yCoordinate;
}
public static void main(String[] args) {
Point p1 = new Point(1, 1);//点1
Point p2 = new Point(2, 3);//点2
System.out.println("Point 1 is: " + p1.toString());//输出点1坐标
System.out.println("Point 2 is: " + p2.toString());//输出点2坐标
System.out.println("Midpoint of point 1 and point 2 is: " + p1.getMidpoint(p2).toString());//中点坐标
System.out.println("Distance between point 1 and point 2 is: " + p1.getDistance(p2));//2点之间距离
}
// x = (x1 + x2)/ 2 , y = (y1 +y2)/2
public Point getMidpoint(Point p1){
Point midPoint = new Point();
midPoint.x = (this.getX() + p1.getX()) / 2;
midPoint.y = (this.getY() + p1.getY()) /2;
return midPoint;
}
//∣AB∣=√[(X1- X2)^2+(Y1- Y2)^2]= √(1+k2) ∣X1 -X2∣
public double getDistance(Point p1){
double xSqure = Math.pow(this.x - p1.getX(), 2);
double ySqure = Math.pow(this.y - p1.getY(), 2);
return Math.sqrt(xSqure + ySqure);
}
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
public String toString(){//string输出
return "(x, y): (" + this.x + ", " + this.y + ")";
}
}
-----------程序运行结果
Point 1 is: (x, y): (1.0, 1.0)
Point 2 is: (x, y): (2.0, 3.0)
Midpoint of point 1 and point 2 is: (x, y): (1.5, 2.0)
Distance between point 1 and point 2 is: 2.23606797749979
④ JAVA编程在坐标系中的运算
public class Perimeter {
public static void main(String args[]) {
// 三个圆的坐标
int x1=1;
int y1=1;
int x2=2;
int y2=2;
int x3=3;
int y3=4;
// Math.sqrt是求平方根,trianglePerimeter就是三角形的周长
double trianglePerimeter = Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))
+Math.sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2))
+Math.sqrt((x3-x1)*(x3-x1)+(y3-y1)*(y3-y1));
// 假设半径是5.0
double radius = 5.0;
// 圆的周长跟坐标没关系,Math.PI就是数学中的圆周率常数3.1415926。。。
double circularPerimeter = Math.PI*2*radius;
}
}
⑤ java实现对应的坐标系转换,从wgs84坐标系转换成墨卡托坐标
若是独立坐标系,无转换参数是无法取得wgs84坐标的。
若是wgs84的坐标的空间直角坐标的形式,你可以从网上coord转换,图标是一个小笑脸,坐标转换应当可以搜到。
补充:既然是两组10位数字,那肯定就不是经纬度咯,建议你先了解一下坐标系统。
我国目前常用的坐标系有北京54坐标系,西安80坐标系以及WGS84。
⑥ 如何用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)的点~。那么你画几个线段的组合你就可以多画几次。就拿你说画1<x<=3是Y=1;1<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个)
⑦ java 建立直角坐标系
//不能用的话肯定是坐标不对
//把mouseMoved方法里的注释去掉重新获取
import java.awt.Dimension;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class MouseHelp extends javax.swing.JPanel implements MouseMotionListener {
private JButton textButton;
Robot robot;
/**
* Auto-generated main method to display this
* JPanel inside a new JFrame.
*/
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.getContentPane().add(new MouseHelp());
frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
public MouseHelp() {
super();
initGUI();
}
private void initGUI() {
try {
robot=new Robot();
addMouseMotionListener(this);
setPreferredSize(new Dimension(400, 300));
this.setLayout(null);
{
textButton = new JButton();
this.add(textButton);
textButton.setText("\u8fd0 \u884c");
textButton.setBounds(136, 72, 127, 22);
textButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
robot.mouseMove(30,745);
try {
Thread.sleep(1000);
robot.mousePress(MouseEvent.BUTTON1_MASK);
robot.mouseRelease(MouseEvent.BUTTON1_MASK);
Thread.sleep(1000);
robot.mouseMove(150,481);
robot.mousePress(MouseEvent.BUTTON1_MASK);
robot.mouseRelease(MouseEvent.BUTTON1_MASK);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}});
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
//从这里获取鼠标的全局坐标
//Point mousepoint = MouseInfo.getPointerInfo().getLocation();
//System.out.println(mousepoint.x+"\t"+mousepoint.y);
}
}
⑧ 在java中在上下文的坐标系统什么意思
计算机屏幕拥有坐标系统,它被用来定义窗口的位置和尺寸。同样,Java中的可视化组件都有自己的一个坐标系,即以组件的左上角为原点,向下和向右分别为Y轴和X轴的正方向。我们可以将一个点求出其在不同坐标系下的值。通过下面的方法即可达到:SwingUtilities.convertPoint方法。在Component类中还有一个方法:contains
public boolean contains(Point p)
检查组件是否“包含”指定的点,其中该点的 x 和 y 坐标是相对于此组件的坐标系定义的值得注意的是所制定包含的点是相对于该组件的坐标系中定义的点。假若一个JButton是位于JFrame中,视觉上在JButton中的一个点,但是其值是相对于JFrame坐标系的,因此在数值上若将该点放到JButton坐标系中,则他可能不位于JButton中了。
右键菜单JPopupMenu使用要领:
首先定义一个JPopupMenu对象pop,然后添加需要的JMenuItem到pop中。
isPopupTrigger
public boolean isPopupTrigger(MouseEvent e)
如果 JPopupMenu 的当前安装 UI 将 MouseEvent 视为弹出菜单触发器,则返回 true。
返回: 如果鼠标事件为弹出菜单触发器,则返回 true
show
public void show(Component invoker, int x, int y)
在组件调用者的坐标空间中的位置 X、Y 显示弹出菜单。
参数: invoker - 弹出菜单在其空间中显示的组件 x - 用于显示弹出菜单的调用者的坐标空间中的 X 坐标 y - 用于显示弹出菜单的调用者的坐标空间中的 Y 坐标
需要注意的是:哪个组件添加了该JPopupMenu,该pop就在哪个组件的坐标系中的范围上显示。假如你在一个JButton上添加了pop那么若pop比JButton要大的话,pop的一些菜单项可能显示不出来。一般我们将pop会添加到顶层的容器中。若要右键其中的组件就弹出菜单时,则可以采用上面所说的方法:在组件中添加一个鼠标监听器,一般右键菜单是右键释放的时候触发,因此在mouseReleased方法中添加处理事件的程序。首先得到在组件坐标系下的鼠标点击的坐标点,再求出该坐标值在容器坐标系下对应的坐标点。并在容器中的该位置显示右键菜单即可
⑨ java定义一个点类Point, 具备坐标系中的横坐标x, 和纵坐标y, 并实现如下功能:
Point类
publicclassPoint{
privatefloatx;
privatefloaty;
publicPoint(floatx,floaty){
this.x=x;
this.y=y;
}
publicfloatgetX(){
returnx;
}
publicvoidsetX(floatx){
this.x=x;
}
publicfloatgetY(){
returny;
}
publicvoidsetY(floaty){
this.y=y;
}
publicfloatdistanceToOrigin(){
return(float)Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2));
}
publicfloatdistanceToOther(intx,inty){
return(float)Math.sqrt(Math.pow(this.x-x,2)+Math.pow(this.y-y,2));
}
publicfloatdistanceToOther(Pointpoint){
return(float)Math.sqrt(Math.pow(this.x-point.x,2)+Math.pow(this.y-point.y,2));
}
}
测试类
publicclassTestPoint{
publicstaticvoidmain(String[]args){
Pointp1=newPoint(3,5);
Pointp2=newPoint(7,8);
System.out.println(p1.distanceToOrigin());
System.out.println(p2.distanceToOrigin());
System.out.println(p1.distanceToOther(20,30));
System.out.println(p2.distanceToOther(20,30));
System.out.println(p1.distanceToOther(p2));
}
}