zrender学习

article/2025/9/21 5:04:28

这个是项目总结,不适合学习

 

<div id="canvas" style="background-image:url(./canvasbg.gif)"></div>

定义zrender初始化对象,背景是一个gif图

样式如下 ↓

 

工程里, topo.html 

<div id = "container">
画布#container{/* width: calc(83.5% - 200px); */width: calc(83.5%);  /** calc是用来设置动态值 **/height: calc(99% - 30px - 1%);box-sizing: border-box;border: 2px solid;border-color: #0C554A;overflow: hidden;background-color: white;float: left;margin-right: 0.5%;}

在topo.html中初始化

 

<div id="div-canvas" style="overflow-x: hidden; overflow-y: hidden;"></div>

zrender初始化对象

 

 

画布背景图已经解决...现在开始学习起zrender

 

 

 

body{margin:0;}

margin控制元素外框与包含该元素的容器的边框距离。这句话让网页顶部顶到浏览器顶部,(默认是有一段空白的)。但是这么写会使网页也靠着浏览器左边,最好写成margin-top:0;margin-left:auto;

 

在topo-painter.js 324行

收到了后端数据,然后画出了zrender图像

 

步骤:先画一条母线

 

文档中初始化zrender是 : zrender.init(dom, opts)

 

现在的写法 :  var zr = zrender.init(document.getElementById('canvas')),

 

这样就得到了一个初始化的zrender对象,可以进行各种操作。

刚刚一直没有反应是因为那个傻逼用了自己定义的zrender.js。草他妈一直以为的是官方的js,别人拷过来的项目也不管用才知道的是那个傻逼把js改了。草他妈

 

要注意引入的js包,看一下成功代码

 

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>zrender测试</title>

     <script type="text/javascript" src="js/zrender.js"></script>

     <script type="text/javascript" src="js/esl.js"></script>

     <script type="text/javascript" src="js/prototype.min.js"></script>

     <style type="text/css">

     html, body{margin: 0;  height:100%; overflow-x: hidden; overflow-y: hidden;}

                #container{

                     /* width: calc(83.5% - 200px); */

                     width: calc(83.5%);  /** calc是用来设置动态值 **/

                     height: calc(99% - 30px - 1%);

                     box-sizing: border-box;

                     border: 2px solid;

                     border-color: #0C554A;

                     overflow: hidden;

                     background-color: white;

                     float: left;

                     margin-right: 0.5%;

                }          

     </style>

</head>

<body>

     <!--  定义一个zrender初始化的对象 -->

     <div  id ="container" >

           <div id="canvas"  class="canvas" style="height:100px;width:100px;" ></div>

     </div>

     <script type="text/javascript">

           //alert("123");

           var con = document.getElementById("container");

           //alert(con.getHeight());

         var zr = zrender.init(document.getElementById('canvas')),

          //window.alert("123"),

          h = zr.getHeight(),

             w = zr.getWidth(),

             line = new zrender.Line({

             shape: {

                 x1: 350,

                 y1: 100,

                 x2: 350,

                 y2: 600

             },

             style: {

                 stroke: 'black',

                 lineWidth: 5

             },

             draggable:true

         });

         zr.add(line);

     </script>

</body>

</html>

 

前台已经出现一个可拖拽的竖线。

第一个问题,背景是 container , zrender是canvas .container的宽高设置的动态值,canvas也要设置动态值,canvas不设置宽高,没有东西显示

canvas是画布,所有东西要放到里面才能显示。

 

那些器材设备先不管,

先把主要线路画出来...

比如谁的谁的子,谁是什么东西,赶紧画出来,还有递归,要重新写。 逻辑没问题。但是遍历,只遍历到第一个的时候,就跳到下一个了

花了将近一个小时,不出图,只是因为格式写错了,height:100px;  后面跟的是分号,我写的逗号。好无语

 


 

拿到了zrender初始化对象,现在要做的就是如何从后台拿到数据,传给zrender自动绘图。

 

zrender是怎么初始化,然后接收数据,最后在成图的呢? 请我们拭目以待。

 

topo-painter.js  361行,onload页面加载函数,页面加载完整之后,对zrender进行初始化。

1.获得背景的宽高,对zrender进行同 宽高 -2 放置

2.定义了鼠标选中移动,按下,弹起,滚轮的放大放小事件

(前端不是我的主力,没必要把精力放在这里,如何画出图,创造最效率的后台,是我的重心)

 

...

现在是自己画,不需要加绕组什么的,先把图做出来。,然后再添加素材

1.传什么数据过来,可以传List吗,还是传什么? //已经传了一个List过来,就要进行参数设置了

2.现在桌面已经成图了。可以慢慢先画着

 

 

 

当前有两个问题,

1.前面的是一个的,就会导致,后面会增长很多

 

 

2.当前上面是一个的,也会导致下面的长度增加

 

 

添加动画

绘制一条虚线,加上动画,在0.5秒的时间里绘制从0%到100%

 

 

 

 var line = new zrender.Line({  

       shape: {  

            x1:10,  

            y1:10,  

           x2:100,  

           y2:10,  

            percent:0  

        },  

        style: {  

            stroke:'#434348',  

            lineDash:[5,5]

        }

    });

    line.animate('shape', false)  

       .when(500, {  

           percent: 1  

        }).start();  

    zr.add(line);

 

当前就是一个动画,只不过上面的是虚线的动画

 

 

 

 

 

 


http://chatgpt.dhexx.cn/article/GNbodP9E.shtml

相关文章

zrender源码学习笔记(一):认识zrender

本文内容 入门zrender绘制原理 入门zrender zrender是Echarts底层的2D绘图引擎&#xff0c;在搞懂其原理之前&#xff0c;我们先学会如何使用zrender&#xff0c;我们从绘制一个简单圆形入门。这里也给出官网入门教程 初始化 zrender.init(dom)初始化zrender实例&#xff0c…

zrender 知识:使用zrender搭建流程图工具

首先看下最终的效果图&#xff1a; 主要使用的技术是zrender.js和vue.js&#xff0c;zrender 用于实现流程图&#xff0c;vue搭建整体架构。 本篇文章主要面向对zrender有一定了解的同学。 本篇文章只讲解核心flowchart的实现方法。 一.分析 流程图主要包含节点node、联系e…

zrender基础入门,简单的案例图形绘制

一、简单介绍 ZRender是二维绘图引擎&#xff0c;它提供 Canvas、SVG、VML 等多种渲染方式。ZRender也是ECharts的渲染器。 流程图&#xff1a; 二、使用入口 (1)npm install zrender&#xff0c;因为zrender不是浏览器自带不同于前面的canvas与svg&#xff0c;需要先下载 …

二维绘图引擎ZRender

1、开始使用 描述 ZRender是二维绘图引擎&#xff0c;它提供 Canvas、SVG、VML 等多种渲染方式。ZRender 也是 ECharts 的渲染器。 下载 ZRender 项目在 gitHub ,也可以使用 npm install zrender 下载。 在 dist 目录下找到 zrender.js 和 zrender.min.js&#xff0c;前者是开发…

MATLAB中求矩阵的特征值和特征向量

矩阵特征值的数学定义 设A是n阶方阵&#xff0c;如果存在常数λ和n维非零列向量x&#xff0c;使得等式Axλ x成立&#xff0c;则称λ为A的特征值&#xff0c;x是对应特征值λ的特征向量。 求特征值和特征向量&#xff1a; eig(A)&#xff1a;求矩阵A的全部特征值&#xff0c…

简单易懂的特征值与特征向量

特征值与特征向量是线性代数中一个很基础的知识&#xff0c;但是很多人对这两个概念没有一个直观的概念&#xff0c;从直觉上&#xff0c;很难理解这两个东西&#xff0c;只知道公式&#xff0c;但是不知道它代表的意义。当年上现代课的时候&#xff0c;老师根本不会去讲这些东…

特征值和特征向量的几何意义

1. 特征值和特征向量 我们首先回顾下特征值和特征向量的定义如下&#xff1a; A x λ x Ax\lambda x Axλx 其中A是一个 n n n\times n nn的实对称矩阵&#xff0c; x x x是一个n维向量&#xff0c;则我们说 λ \lambda λ是矩阵A的一个特征值&#xff0c;而 x x x是矩阵A的…

特征值和特征向量的通俗解释

我们知道&#xff0c;特征向量的公式是 ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ 其中A代表矩阵&#xff0c;x代表特征向量&#xff0c;代表特征值。 众所周知&#xff0c;特…

对特征值和特征向量的理解

Agenda 1. 特征值和特征向量1.1 特征值和特征向量的通俗解释1.2 如何计算矩阵的特征值和特征向量1.3 特征多项式1.4 特征值和特征向量的性质 1. 特征值和特征向量 在讨论特征值和特征向量之前&#xff0c;必须声明的是现在我们关注的是有限维 线性空间上的线性变换。这里两个关…

线性代数(五)特征值和特征向量

文章目录 一&#xff1a;特征值与特征向量二&#xff1a;特征方程2.1行列式求解的另一种方法--初等变换2.2可逆矩阵定理以及行列式性质的补充2.3特征方程/特征多项式2.4相似性 三&#xff1a;对角化3.1从例子出发3.2定理3.3例子 一&#xff1a;特征值与特征向量 1.定义&#x…

特征值和特征向量(三)

特征值和特征向量&#xff08;三&#xff09; 一、先看一下教科书上的定义&#xff1a;设A是n阶方阵&#xff0c;如果存在常数及非零n向量x&#xff0c;使得&#xff0c;则称是矩阵A的特征值&#xff0c;x是A属于特征值的特征向量。给定n阶矩阵A&#xff0c;行列式 的结果是关…

网页游戏脱机脚本制作视频教程

网页游戏脱机脚本制作视频教程 百度网盘 布脖练馅辰杖怖铱试疤促钩咏合躺酱澈纸罢旨谖谘帘婪尾拾碧鸥居丶骨碳捍饰炔幌干衫乖商衣临衣氛捍运阂妊痰煤籽媒移惶心谑源谑丫松橙湛叭坪佳蛊八婪毒鄙刮碧悠凳炔捍灰钩贺篮媒梅敝粱寡油倨制柿囊谐举婪贫婪奖堂虏啄腊谘剿镜感诺衣挥堂猎…

python可以制作游戏脚本吗_用Python写一个游戏脚本,你会吗?

学习python有一段时间了,由于python语言的强大和简洁,是一个不错的脚本语言,就准备做个游戏脚本练练手。如果你也想多练项目实战。可以去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目 听说pywin32写脚本还不错 pyw…

逆水寒商业脚本制作视频

​一章 易语言基础 共6课时 1、关于易语言必须了解的基本知识 2、易语言基本组件(不包括超级列表框)讲解 3、易语言超级列表框详解 3、易语言核心支持库讲解之一 4、易语言核心支持库讲解之二 5、易语言模块制作和DLL制作 6、用制作的模块和DLL开发三个小软件 第二章…

Java开发游戏脚本(第三卷)

游戏脚本开发第三卷 XML文件存储数据使用exe4j打包成exe文件回首BUG最后结语 XML文件存储数据 我举个例子&#xff0c;我的窗口数据需要存储到文件&#xff0c;它的结构为: public class Game {// Game类的成员变量private String Title;private int X;private int Y;private…

乐玩模块脚本实战教程辅助脚本制作开发视频

乐玩插件模块的制作&#xff0c;封装了后台绑定判断&#xff0c;键鼠图色窗口文本输入等游戏辅助常用的方法&#xff0c;每种方法都做了游戏调用测试示范&#xff0c;最后录制了四种多线程方法调用乐玩插件&#xff0c;并通过游戏进行了演示。 学习地址&#xff1a;链接&#x…

游戏多开器制作教程

这里讲解怎么制作多开器&#xff0c;简单易懂的讲解&#xff0c;希望能够记录学习过程。 用易语言来制作自己的小工具&#xff0c;还是挺有成就感的。每个人都可以。 1.常见的几种游戏多开限制-简单说明 2.什么是互斥体 3.互斥体的类型与查找 4.编写多开代码实现游戏多开

C++游戏编程教程(一)

参考书籍&#xff1a;《C游戏编程&#xff1a;创建3D游戏》 注&#xff1a;本教程所有代码的开发环境均为Visual Studio Preview 2022&#xff0c;C标准是C20。 一、初识SDL SDL是一个跨平台的开源多媒体库&#xff0c;被广泛应用于游戏开发&#xff0c;具体可以看这里。另外…

html5分镜头脚本范例,分镜头脚本教程图解

这是一份pdf免费高清彩版的分镜头脚本设计教程&#xff0c;全书彩页&#xff0c;排版非常不错&#xff0c;阅读起来充满趣味性&#xff0c;另外&#xff0c;书中有不少分镜头脚本范例以及分镜头脚本教程图解&#xff0c;是一本值得一看的好书。全书详细讲解了分镜头是如何制作的…

Java开发游戏脚本(第五卷)

游戏脚本开发第五卷 前言介绍相关技术相关功能项目结构最后结语 前言介绍 本卷具体介绍脚本1.0&#xff0c;相关代码不再展示&#xff0c;该项目全部源码以及相关配置文件可在下方评论区留下QQ邮箱即可领取。 相关技术 JavaFX&#xff0c;主要用于展示页面效果&#xff0c;该技…