小菜乐园

生活就是一杯茶

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  8 Posts :: 0 Stories :: 3 Comments :: 0 Trackbacks

2007年8月18日 #

     摘要: * 图像缩放 - 参数指定目标图缩放比例。
* @param srcImage 源图像对象。
* @param xscale 图像 x 轴(宽度)上的的缩放比例。
* @param yscale 图像 y 轴(高度)上的的缩放比例。
* @param hints 重新绘图使用的 RenderingHints 对象。
* @return 缩放后的图像对象  阅读全文
posted @ 2007-08-18 10:20 小菜 阅读(1509) | 评论 (0)编辑 收藏

2007年8月17日 #

     摘要:   阅读全文
posted @ 2007-08-17 20:19 小菜 阅读(1602) | 评论 (0)编辑 收藏

     摘要: JAVA2D在图像处理方面提供一对接口:  阅读全文
posted @ 2007-08-17 10:58 小菜 阅读(2033) | 评论 (0)编辑 收藏

AWT 提供了一些用户接口的构件,但是它不提供一些类似的纯粹的绘制图形的对象,例如 Rectangle、Polygon 和 Point 类没有任何绘制图形的能力。换句话说它们不具备 draw 方法,仅仅可以设置和的到它们代表的几何实体的信息。

    为了代替那些纯粹的、可绘制图形的对象,AWT 使用了一种简单的模式。每个 AWT 构件完全来自于它自己的 java.awt.Graphics 对象。

    java.awt.Graphics 是一个抽象类,其作用是定义一个真正的工具,用来接受图形操作。

表一:传递一个对 Graphics 的引用的 JDK 方法

java.awt Canvas paint(Graphics g)
Component paint(Graphics g)
Component paintAll(Graphics g)
Component print(Graphics g)
Component printAll(Graphics g)
Component update(Graphics g)
Container paint(Graphics g)
Container paintComponents(Graphics g)
Container print(Graphics g)
Container printComponents(Graphics g)
ScrollPane printComponents(Graphics g)
java.beans Property-Editor paintValue(Graphics g, Rectangle r)
Property-EditorSupport paintValue(Graphics g, Rectangle r)

表二:返回 Graphics 引用的 JDK 方法

java.awt Component getGraphics()
Image getGraphics()
PrintJob getGraphics()
Graphics create()
Graphics create(intx, int y, int w, int h)

Graphics 类履行2个主要的职责:

    · 设置和获取图形参数。

    · 在输出设备中执行图形操作。

得到构件的 Graphics 的引用有2种方法:

    · 重载 表一 中的方法(传递 Graphics 的引用)

    · 调用 表二 中的方法(返回 Graphics 的副本)

Graphics 对象的寿命

    除了使用 表二 的方法得到的 Graphics 的副本外,使用 表一 的方法得到的 Graphics 的引用只有在方法的执行过程中才有效(例如重载的 paint() 和 update() 等方法)。一旦方法返回,引用将不再有效。

    通过使用 表二 的方法得到的 Graphics 的对象使用完后需要调用 Graphics.dispose() 方法处理。

// 程序片断
public void someMethodInAComponent(){
 Graphics g = getGraphics();
 
 if(g != null){
  try{
   // ...
   // ...
  }
  finally{
   g.dispose();
  }
 }
}

Graphics 类还提供2个方法创建 Graphics 对象:

    · Graphics create() 

        创建精确的 Graphics 副本。

    · Graphics create(int x, int y, int w, int h)

        创建一个副本,但是,变元指定一个平移量 (x, y) 和一个新的剪贴矩形 (x, y, w, h)。create(int, int, int, int) 返回的 Graphics 的原点被转换成 (x, y) 的坐标,但是剪贴矩形转换为原剪贴矩形和指定矩形的交集。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class CreateTest extends Applet{
 private Image image;
 
 public void init(){
  image = getImage(getCodeBase(),"lena.jpg");
  try{
   MediaTracker mt = new MediaTracker(this);
   mt.addImage(image,0);
   mt.waitForID(0);
  }
  catch(InterruptedException e){
   e.printStackTrace();
  }
 }
 
 public void paint(Graphics g){
  Graphics copy = g.create(image.getWidth(this),0,image.getWidth(this),image.getHeight(this));
  
  try{
   System.out.println("g: " + g.getClip().toString());
   System.out.println("copy: " + copy.getClip().toString());
   
   g.drawImage(image,0,0,this);
   copy.drawImage(image,0,0,this);
  }
  finally{
   copy.dispose();
  }
 }
}

posted @ 2007-08-17 10:08 小菜 阅读(724) | 评论 (0)编辑 收藏

     摘要: 笔者在这里将画线,画或填充多边形等理解为"图形"技术,将图片的变换,显示理解为"图像"技术.

相对而言,图形技术较简单,图像技术较复杂.下面笔者从实用的角度出发,讲解几个图像编程问题.首先,我们看下面这个程序.

import java.applet.*;

import java.awt.*;  阅读全文
posted @ 2007-08-17 07:48 小菜 阅读(728) | 评论 (0)编辑 收藏

2007年8月16日 #

http://nehe.gamedev.net/ 是无意中发现的一个公认非常棒的OpenGL学习网站,而且在国内有许多网站上面有中文翻译版,不过不是每个网站都可以顺利地下载程序文件.这站点上面有针对 OpenGL 的一系列章节,看过之后觉得自己再写OpenGL的学习体会就有些多余了. 里面每一章节后面有不同语言实现的源程序,短小精悍,非常易于针对性突破知识点.是不可多得的金钥匙(尤其大部分示例都有LWJGL的实现).


在学习过程中,发现其中对于OpenGL的调用非常好,但是过于针对OpenGL的特色,使得其某些时候忽略了不同语言在调用 OpenGL时候的差异,比如在Java程序中把内存地址传递给OpenGL状态机是如何实现的? 为什么要用Buffer等,要掌握好OpenGL,除了对OpenGL了如指掌外,还要玩得转至少一种计算机语言,哪怕是VB.

posted @ 2007-08-16 20:59 小菜 阅读(2451) | 评论 (1)编辑 收藏

OS  WindowsXP SP2
IDE Eclipse3.2
LWJGL LWJGL 1.0 beta 2
J2SE 1.6 beat 2
Eclipse请到 www.eclipse.org 下载
LWJGL 主页 www.lwjgl.org
下载LWJGL后,将其解压缩,把其中lwjgl-1.0beta2\lwjgl-1.0beta2\native\win32下的DLL文件全部复制到Java安装路径下的jre/bin下面,一生机器上的绝对路径是C:\Program Files\Java\jdk1.6.0\jre\bin. 同理,将LWJGL目录(lwjgl-1.0beta2\lwjgl-1.0beta2\jar)下的所有JAR库文件复制到C:\Program Files\Java\jdk1.6.0\jre\lib\ext下面。(ext目录是Java环境的库扩展目录,这些不用我多说了吧:))
当然,为了所编写出来的程序可以在其它机器上运行,目标机器上一定要配置好LWJGL才可以哟。
好的,现在启动Eclipse,新建一个Java工程,在JRE System Lib里面应该就可以看到LWJGL库文件了。

上面的方法是我知道的最偷懒的方法了,不用去配置烦人的环境变量.其实还有很多在开发环境的更正规的配置方法,可以到LWJGL的官方网站参考.里面有关于Eclipse,NetBeans,JCreator等流行工作的详细配置步骤.

posted @ 2007-08-16 20:55 小菜 阅读(483) | 评论 (0)编辑 收藏

2007年8月15日 #

     摘要: 我照着《VRML与Java编程技术》,写了这样的一个程序,但是没效果出来

请高手们指教啊!!!

  阅读全文
posted @ 2007-08-15 11:39 小菜 阅读(970) | 评论 (1)编辑 收藏