📄 geometrycanvas.java
字号:
/*
* GeometryCanvas.java
*
* Created on 2006年12月30日, 下午1:55
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package com.crscd.geometry;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.Rectangle;
/**
*
* @author Administrator
*/
public class GeometryCanvas extends java.awt.Canvas {
/** Creates a new instance of GeometryCanvas */
CoordinateSys m_geometry = new CoordinateSys();
Point m_oMousePosition = new Point(0,0);
boolean m_bMouseCaptured = false;
public GeometryCanvas() {
this.setBackground(new Color(0,0,0));
m_geometry.m_SetValidate(new Validate(1,1,0));
m_geometry.m_SetViewRange(-100,100.0f,30);
m_geometry.m_GetCoordinate().m_SetAngleH(30);
m_geometry.m_GetCoordinate().m_SetAngleV(30);
m_geometry.m_Calualate( "(1-(Y/50)^2+(Z/60)^2)^(1/2)*100",
"(1-(X/100)^2+(Z/60)^2)^(1/2)*50","",m_geometry.m_GetValidate(),true);
addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseDragged(java.awt.event.MouseEvent evt) {
MouseDragged(evt);
}
public void mouseMoved(java.awt.event.MouseEvent evt) {
MouseMoved(evt);
}
});
addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(java.awt.event.MouseEvent evt) {
MousePressed(evt);
}
public void mouseReleased(java.awt.event.MouseEvent evt) {
MouseReleased(evt);
}
});
addComponentListener(new java.awt.event.ComponentAdapter() {
public void componentResized(java.awt.event.ComponentEvent evt) {
ComponentResized(evt);
}
});
Rectangle rect = this.getBounds();
Point center = new Point(rect.width/2,rect.height/2);
m_geometry.m_GetCoordinate().m_SetWindowOrigin(center);
m_geometry.m_PreDraw();
}
public void paint(Graphics graphics) {
m_geometry.m_Draw(graphics);
}
private void ComponentResized(java.awt.event.ComponentEvent evt) {
Rectangle rect = this.getBounds();
Point center = new Point(rect.width/2,rect.height/2);
m_geometry.m_GetCoordinate().m_SetWindowOrigin(center);
m_geometry.m_PreDraw();
}
private void MouseMoved(java.awt.event.MouseEvent evt) {
if( m_bMouseCaptured == true )
{
}
}
private void MouseDragged(java.awt.event.MouseEvent evt) {
Point curMousePosition = evt.getPoint();
Rectangle rect = this.getBounds();
double x = curMousePosition.x - m_oMousePosition.x;
double y = curMousePosition.y - m_oMousePosition.y;
double w = rect.width;
double h = rect.height;
double angleH = m_geometry.m_GetCoordinate().m_GetAngleH();
double angleV = m_geometry.m_GetCoordinate().m_GetAngleV();
System.out.println("\n水平旋转="+angleH);
System.out.println("\n垂直旋转="+angleV);
m_oMousePosition = curMousePosition;
angleH += x*360.0f/w;
angleV += y*360.0f/h;
m_geometry.m_GetCoordinate().m_SetAngleH(angleH);
m_geometry.m_GetCoordinate().m_SetAngleV(angleV);
m_geometry.m_PreDraw();
this.repaint();
}
private void MousePressed(java.awt.event.MouseEvent evt) {
m_bMouseCaptured = true;
m_oMousePosition = evt.getPoint();
}
private void MouseReleased(java.awt.event.MouseEvent evt) {
m_bMouseCaptured = false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -