使用webbrowser控件展示echarts的三维图像

1.webbrowser控件导航到目标文件

string dataDir = Path.GetFullPath(@"..//.."); //取得当前程序的上上级目录
webBrowser1.Navigate(dataDir + @"\asset\p1.html");

注意指示托管类型对 COM 可见

 [System.Runtime.InteropServices.ComVisible(true)]
 public partial class Form1 : Form
 {
 }

 2.p1.html文件内容

<!DOCTYPE html>
<html>
<head>
	<!--<meta charset="utf-8">-->
	<meta charset="utf-8" http-equiv="X-UA-Compatible" content="IE=edge">
	<title>第一个 ECharts 实例</title>
	<!-- 引入 echarts.js -->
	<script src="echarts.js"></script>
	<!--<script src="jquery.min.js"></script>-->
	<!--<script src="bootstrap.min.js"></script>-->
	<script src="echarts-gl.js"></script>

</head>
<body>
    <!-- 为ECharts准备一个具备大小(宽高)的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">

        var chartDom = document.getElementById('main');
		var myChart = echarts.init(chartDom);
		var option;

		var data = [];
		// Parametric curve
		for (var t = 0; t < 25; t += 0.001) {
			var x = (1 + 0.25 * Math.cos(75 * t)) * Math.cos(t);
			var y = (1 + 0.25 * Math.cos(75 * t)) * Math.sin(t);
			var z = t + 2.0 * Math.sin(75 * t);
			data.push([x, y, z]);
		}

		option = {
			tooltip: {},
			backgroundColor: '#fff',
			visualMap: {
				show: false,
				dimension: 2,
				min: 0,
				max: 30,
				inRange: {
					color: ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026']
				}
			},
			xAxis3D: {
				type: 'value'
			},
			yAxis3D: {
				type: 'value'
			},
			zAxis3D: {
				type: 'value'
			},
			grid3D: {
				viewControl: {
					projection: 'orthographic'
				}
			},
			series: [{
				type: 'line3D',
				data: data,
				lineStyle: {
					width: 4
				}
			}]
		};

		option && myChart.setOption(option);

    </script>
</body>
</html>

注意:在html中需要将渲染模式做设置,在ie内核下不设置,使用echarts三维图会报错(不能使用freeze属性或方法)。

  <meta http-equiv="X-UA-Compatible" content="ie=edge">

3.echarts.js和echarts-gl.js的问题

1)版本

echarts.js的4.X和echarts-gl.js的1.X匹配

echarts.js的5.X和echarts-gl.js的2.X匹配

我是用的是:

whttps://cdn.jsdelivr.net/npm/echarts@5.2.0/dist/

https://cdn.jsdelivr.net/npm/echarts-gl@2.0.8/dist/

优先使用非压缩版本,压缩了的echarts.min.js使用时会报错,好像不能使用line3D...,可能与压缩删去回车和空格有关。

2)echarts-gl.js的报错问题

1.报格式错误

原因是echarts-gl.js中存在匿名函数"()=>{}",改为常用格式“function(){}”就行了,大概有5、6处,报错提示位置。

2. 不支持assign属性或方法

这个错误也是应为ie内核导致的,修改方法在下面的连接中,将ployfill复制到报错的前面就可以了。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

4.最后的效果

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值