使用 Applet 渲染 jzy3d WireSurface 波动率曲面图
经过几天的努力,终于让 本来应该在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 波动率曲面图相关推荐
- Qt开发技术:Q3D图表开发笔记(三):Q3DSurface三维曲面图介绍、Demo以及代码详解
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130264470 各位读者,知识无穷而人力有穷,要么改需 ...
- Matlab论文插图绘制模板第56期—曲面图(Surf)
在之前的文章中,分享了一系列Matlab网格曲面图的绘制模板: 这一次,再来分享一下曲面图的绘制模板. 先来看一下成品效果: 特别提示:Matlab论文插图绘制模板系列,旨在降低大家使用Matlab进 ...
- python使用matplotlib可视化3D曲面图、曲面图表示一个指定的因变量y与两个自变量x和z之间的函数关系
python使用matplotlib可视化3D曲面图.曲面图表示一个指定的因变量y与两个自变量x和z之间的函数关系 目录
- Python使用matplotlib进行3D可视化分析:3d柱状图、3d直方图、3d线框图、3d曲面图、3d翼面图(莫比乌斯环)
Python使用matplotlib进行3D可视化分析:3d柱状图.3d直方图.3d线框图.3d曲面图.3d翼面图(莫比乌斯环) 目录
- python绘制三维散点图-python 画三维图像 曲面图和散点图的示例
用python画图很多是根据z=f(x,y)来画图的,本博文将三个对应的坐标点输入画图: 散点图: import matplotlib.pyplot as plt from mpl_toolkits. ...
- python绘制三维曲面图-python中Matplotlib实现绘制3D图的示例代码
Matplotlib 也可以绘制 3D 图像,与二维图像不同的是,绘制三维图像主要通过 mplot3d 模块实现.但是,使用 Matplotlib 绘制三维图像实际上是在二维画布上展示,所以一般绘制三 ...
- Python的可视化包 – Matplotlib 2D图表(点图和线图,.柱状或饼状类型的图),3D图表(曲面图,散点图和柱状图)...
Python的可视化包 – Matplotlib Matplotlib是Python中最常用的可视化工具之一, 可以非常方便地创建海量类型地2D图表和一些基本的3D图表.Matplotlib最早是为了 ...
- 知道坐标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. ...
- matlab 三维核密度图_Matlab精彩画图示例:三维网状图和三维曲面图
接上篇:Matlab精彩画图示例:绘制图上图 这篇介绍两个绘制三维图的命令: mesh - 绘制三维网状图 surf - 绘制三维曲面图 matlab代码如下: 绘制三维图的matlab代码示例 程序 ...
最新文章
- Android-ImageLoader的最基础的操作
- c语言 动态内存相关函数
- V100服务器和T4服务器的性能指标
- PAT_B_1089_Java(20分)
- 一壶 100℃ 的开水从多高倒进嘴里不会觉得烫?
- php+easyui+上传文件,easyui 上传文件代码
- 数组排序(冒泡、排序)
- jumpserver(0.3.2版本)开源跳板机系统部署
- dwz java_dwz.cn接口java客户端实现
- 面试前,不要这么准备了,简直愚蠢到极点
- UVA10473 Simple Base Conversion【进制转换】
- linux怎么开启httpd服务公钥,在Apache httpd服务器上部署SSL证书
- load data infile into table 的使用例子
- TOMCAT报错解决
- optistruct学习
- 查看计算机安装程序版本,Product Key Explorer(程序密钥显示工具)
- KNN算法 使用KNN对iris数据集分类
- 图解机器学习算法(5) | 朴素贝叶斯算法详解(机器学习通关指南·完结)
- 圆你的大厂梦!字节跳动Java高频面试题真题一二三面常见问题
- 扩增子分析流程 —— 数据处理(vsearch)
热门文章
- linux卸载飞行模式驱动,解决:Ubuntu飞行模式 使用硬件开关关闭
- HCU500主轴编码器检测工具
- html给看板娘添加语音,给网页添加看板娘
- 云桌面是什么?云桌面如何运行的?
- 云桌面优缺点_相比传统PC,云桌面优缺点在哪里?
- c语言分桃分题设计思路,C语言实现的猴子分桃问题算法解决方案
- TFT,TFD,STN 屏幕以及VGA,QVGA,SVGA分辨率等常识
- js和python前景比较好_Python,Java和JavaScript这3个编程语言未来哪个更有前景?
- 微信分享按钮隐藏、显示问题和注意事项
- 【代码质量】嵌入式编程节约内存技巧