经过几天的努力,终于让 本来应该在Frame中的WireSurface chart 嵌入 到了 Applet中。效果图如下:

代码如下:

jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="pragma" content="no-cache"/>
<meta http-equiv="cache-control" content="no-cache"/>
<meta http-equiv="expires" content="0"/><title>Insert title here</title>
</head>
<body><applet code="HelloApplet" width=800 height=600 codebase="./"archive="org.jzy3d-0.9.jar, gluegen-rt.jar,gluegen-rt-natives-windows-i586.jar,jogl-all.jar,jogl-all-natives-windows-i586.jar"></applet></body>
</html>

Applet:

import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JApplet;import org.jzy3d.chart.Chart;
import org.jzy3d.chart.ChartLauncher;
import org.jzy3d.demos.IDemo;
import org.jzy3d.demos.surface.WireSurfaceDemo;
import org.jzy3d.global.Settings;
import org.jzy3d.plot3d.rendering.canvas.ICanvas;public class HelloApplet extends JApplet implements ActionListener{private Chart chart;private ICanvas canvas;public void paint(Graphics g) {super.paint(g);}@Overridepublic void init() {try {IDemo demo = new WireSurfaceDemo();Settings.getInstance().setHardwareAccelerated(true);demo.init();this.chart = demo.getChart();boolean allowSlaveThreadOnDoubleClick = true;boolean startThreadImmediatly = true;ChartLauncher.configureControllers(chart, "title",allowSlaveThreadOnDoubleClick, startThreadImmediatly);chart.render();this.canvas = chart.getCanvas();getContentPane().add((java.awt.Component)this.canvas);} catch (Exception e) {e.printStackTrace();}finally{}}@Overridepublic void actionPerformed(ActionEvent e) {}
}

WireSurfaceDemo:

package org.jzy3d.demos.surface;import org.jzy3d.chart.Chart;
import org.jzy3d.colors.Color;
import org.jzy3d.colors.ColorMapper;
import org.jzy3d.colors.colormaps.ColorMapRainbow;
import org.jzy3d.demos.AbstractDemo;
import org.jzy3d.demos.DemoLauncher;
import org.jzy3d.maths.Range;
import org.jzy3d.plot3d.builder.Builder;
import org.jzy3d.plot3d.builder.Mapper;
import org.jzy3d.plot3d.builder.concrete.Chart4Grid;
import org.jzy3d.plot3d.builder.concrete.OrthonormalGrid;
import org.jzy3d.plot3d.primitives.Shape;
import org.jzy3d.plot3d.rendering.canvas.Quality;public class WireSurfaceDemo extends AbstractDemo {public static void main(String[] args) throws Exception {DemoLauncher.openDemo(new WireSurfaceDemo());}public WireSurfaceDemo() {}@Overridepublic void init() {// Define a function to plotMapper mapper = new Mapper() {public double f(double x, double y) {return 10 * Math.sin(x / 10) * Math.cos(y / 20) * x;}};// Define range and precision for the function to plotRange range = new Range(-150, 150);int steps = 50;// OrthonormalGrid grid = new OrthonormalGrid(range, steps, range, steps);OrthonormalGrid grid = new Chart4Grid(range, steps, range, steps, data);// Create the object to represent the function over the given range.final Shape surface = Builder.buildOrthonormal(grid, mapper);surface.setColorMapper(new ColorMapper(new ColorMapRainbow(), surface.getBounds().getZmin(), surface.getBounds().getZmax(), new Color(1, 1, 1, .5f)));surface.setFaceDisplayed(true);surface.setWireframeDisplayed(true);surface.setWireframeColor(Color.BLACK);// Create a chart and add surfacechart = new Chart(Quality.Advanced, getCanvasType());chart.getScene().getGraph().add(surface);}@Overridepublic String getPitch() {return "Show a simple surface based on a mathematical function";}public double data[][] = {{-150.0,-150.0,338.1191},

相关的jar文件:

gluegen.jar

gluegen-rt.jar

jogl-all.jar

gluegen-rt-natives-windows-i586.jar

jogl-all-natives-windows-i586.jar

org.jzy3d-0.9.jar

转载于:https://www.cnblogs.com/lanfengniao/p/3459321.html

使用 Applet 渲染 jzy3d WireSurface 波动率曲面图相关推荐

  1. Qt开发技术:Q3D图表开发笔记(三):Q3DSurface三维曲面图介绍、Demo以及代码详解

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130264470 各位读者,知识无穷而人力有穷,要么改需 ...

  2. Matlab论文插图绘制模板第56期—曲面图(Surf)

    在之前的文章中,分享了一系列Matlab网格曲面图的绘制模板: 这一次,再来分享一下曲面图的绘制模板. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab进 ...

  3. python使用matplotlib可视化3D曲面图、曲面图表示一个指定的因变量y与两个自变量x和z之间的函数关系

    python使用matplotlib可视化3D曲面图.曲面图表示一个指定的因变量y与两个自变量x和z之间的函数关系 目录

  4. Python使用matplotlib进行3D可视化分析:3d柱状图、3d直方图、3d线框图、3d曲面图、3d翼面图(莫比乌斯环)

    Python使用matplotlib进行3D可视化分析:3d柱状图.3d直方图.3d线框图.3d曲面图.3d翼面图(莫比乌斯环) 目录

  5. python绘制三维散点图-python 画三维图像 曲面图和散点图的示例

    用python画图很多是根据z=f(x,y)来画图的,本博文将三个对应的坐标点输入画图: 散点图: import matplotlib.pyplot as plt from mpl_toolkits. ...

  6. python绘制三维曲面图-python中Matplotlib实现绘制3D图的示例代码

    Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现.但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三 ...

  7. Python的可视化包 – Matplotlib 2D图表(点图和线图,.柱状或饼状类型的图),3D图表(曲面图,散点图和柱状图)...

    Python的可视化包 – Matplotlib Matplotlib是Python中最常用的可视化工具之一, 可以非常方便地创建海量类型地2D图表和一些基本的3D图表.Matplotlib最早是为了 ...

  8. 知道坐标matlab三维作图,已知点坐标,要求根据坐标作出三维曲面图

    已知400个点的X,Y,Z坐标,分别为下面矩阵,如何作出三维曲面图? X=[0.0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0. ...

  9. matlab 三维核密度图_Matlab精彩画图示例:三维网状图和三维曲面图

    接上篇:Matlab精彩画图示例:绘制图上图 这篇介绍两个绘制三维图的命令: mesh - 绘制三维网状图 surf - 绘制三维曲面图 matlab代码如下: 绘制三维图的matlab代码示例 程序 ...

最新文章

  1. Android-ImageLoader的最基础的操作
  2. c语言 动态内存相关函数
  3. V100服务器和T4服务器的性能指标
  4. PAT_B_1089_Java(20分)
  5. 一壶 100℃ 的开水从多高倒进嘴里不会觉得烫?
  6. php+easyui+上传文件,easyui 上传文件代码
  7. 数组排序(冒泡、排序)
  8. jumpserver(0.3.2版本)开源跳板机系统部署
  9. dwz java_dwz.cn接口java客户端实现
  10. 面试前,不要这么准备了,简直愚蠢到极点
  11. UVA10473 Simple Base Conversion【进制转换】
  12. linux怎么开启httpd服务公钥,在Apache httpd服务器上部署SSL证书
  13. load data infile into table 的使用例子
  14. TOMCAT报错解决
  15. optistruct学习
  16. 查看计算机安装程序版本,Product Key Explorer(程序密钥显示工具)
  17. KNN算法 使用KNN对iris数据集分类
  18. 图解机器学习算法(5) | 朴素贝叶斯算法详解(机器学习通关指南·完结)
  19. 圆你的大厂梦!字节跳动Java高频面试题真题一二三面常见问题
  20. 扩增子分析流程 —— 数据处理(vsearch)

热门文章

  1. linux卸载飞行模式驱动,解决:Ubuntu飞行模式 使用硬件开关关闭
  2. HCU500主轴编码器检测工具
  3. html给看板娘添加语音,给网页添加看板娘
  4. 云桌面是什么?云桌面如何运行的?
  5. 云桌面优缺点_相比传统PC,云桌面优缺点在哪里?
  6. c语言分桃分题设计思路,C语言实现的猴子分桃问题算法解决方案
  7. TFT,TFD,STN 屏幕以及VGA,QVGA,SVGA分辨率等常识
  8. js和python前景比较好_Python,Java和JavaScript这3个编程语言未来哪个更有前景?
  9. 微信分享按钮隐藏、显示问题和注意事项
  10. 【代码质量】嵌入式编程节约内存技巧