Web前端页面的可视化有哪些实现方法
时间:2023-03-28 13:04:36
HTML
随着互联网和技术的不断发展,近年来,数据可视化的研究如火如荼。数据可视化不仅可以清晰有效地传达和传达信息,而且在我们的娱乐生活中有着越来越多的应用。可视化的应用已经深入到我们的生活中,它可以非常炫酷的展示数据信息。比如我们看到更多的疫情地图,还有淘宝等电商平台大屏的可视化数据,都属于可视化技术。应用。那么他们是如何实现的呢?然后往下看!可视化的概念要想快速了解这项流行实用的技术,首先得知道什么是可视化的概念。可视化是利用计算机图形图像处理技术,将数据转化为图形或图像并显示在屏幕上,再进行交互处理的理论、方法和技术。可视化的种类主要分为以下三个分支:科学可视化、信息可视化和可视化分析。科学可视化科学可视化是可视化领域最早、最成熟的交叉学科研究和应用领域。面向的领域主要是自然科学,如物理学、化学、气象与气候、航天、医学、生物学等学科。这些学科通常需要解释、操作和处理数据和模型,旨在发现模式和特征、关系和异常。▲ScientificVisualizationInformationVisualization信息可视化处理的对象是抽象的数据集,起源于统计图形,与信息图形、视觉设计等现代技术有关。它的表现形式通常在二维空间,因此关键问题是在有限的展示空间内以直观的方式传达大量的抽象信息。▲信息可视化VisualAnalyticsVisualAnalytics被定义为一门基于视觉交互的分析和推理科学。它集成了图形学、数据挖掘、人机交互等技术。它以可视化交互界面为渠道,将人类的感知和认知能力以可视化的方式融入到数据处理过程中,形成人脑智能与机器智能相辅相成的和谐结合。相互促进,建立螺旋式的信息交流和知识提取通道,完成有效的分析、推理和决策。▲可视化分析可视化的实现回到生活和工作中,人们获取信息和咨询最常用的方式之一就是搜索引擎。下面简单介绍一下Web前端页面在浏览器中实现可视化的方式。html+css我们在浏览器中看到的大约80%的内容都是通过这种方式实现的。简单的说,html就是页面上整齐的文字、图片、视频等元素。我们使用构建块将各种元素拼凑在一起,形成我们的主要信息内容。而css可以控制这些积木的大小、形状和颜色样式。两者结合起来就可以构成我们日常生活中看到的网页。svgsvg是一种图片格式。作为矢量图,它可以在各种分辨率下呈现出不错的画面效果,并且可以构建出多种多样的形状,让我们的页面更??加美观。你可以把canvas想象成一张白纸,它可以让你在白纸上自由地画画,并将画出的图形呈现在页面上。它还可以用来实现动画和游戏。毕竟两者的原理都是在固定时间内快速依次显示多张图片,利用人的视觉暂留特性来实现的。WebGL是一种3D图形协议,我们在网页上看到的很多3D效果都离不开它。它利用电脑中显卡的性能来加速渲染,其性能远高于前三者。看完以上概念性的内容是不是更加迷茫了?下面我们来看一下代码实现上的区别。我们将使用上述4种技术来绘制一个简单的三角形,如下所示。html+css代码实现:
.triangle{width:0;高度:0;border-bottom:100pxsolid#00FFFF;左边框:50px实心透明;border-right:50pxsolidtransansparent;}Svg代码实现:
画布代码实现:init(){constcanvasObj=document.getElementById("testCanvas");constctx=canvasObj.getContext("2d");ctx.beginPath();ctx.moveTo(150,0);ctx.lineTo(300,240);ctx.closePath();ctx.fillStyle="cyan";ctx.fill();}WebGL代码实现:init(){constcanvasObj=document.getElementById("testCanvas");constctx=canvasObj.getContext("webgl");//写shaderconstvertex=attributevec2position;voidmail(){gl_PointSize=1.0;gl_Position=vec4(position,1.0,1.0);};constfragment=precisionmediumpfloat;voidmail(){gl_FragColor=vec4(0.0,1.0,1.0,1.0);};//创建shader对象constvertexShader=ctx.createShader(ctx.VERTEX_SHADER);ctx.shaderSource(vertexShader,vertex);ctx.compileShader(vertexShader);constfragmentShader=ctx.createShader(ctx.FRAGMENT_SHADER);ctx.shaderSource(fragmentShader,fragment);ctx.compileShader(fragmentShader);//创建webGLProgram对象constprogram=ctx.createProgram();ctx.attachShader(program,vertexShader);ctx.attachShader(program,fragmentShader);ctx.linkProgram(program);ctx.useProgram(program);//定义三角形不动点constpoints=newFloat32Array([-1,-1,0,1,1,-1,]);//将定义好的数据写入webGLbuffer中//将缓冲区数据读入GPUconstvPosition=ctx.getAttribLocation(program,'position');ctx.vertexAttribPointer(vPosition,2,ctx.FLOAT,false,0,0);ctx.enableVertexAttribArray(vPosition);//执行shader程序完成绘制ctx.clear(ctx.COLOR_BUFFER_BIT);ctx.drawArrays(ctx.TRIANGLES,0,points.length/2);}视觉差异HTML+CSS优点:方便,无第三方依赖,甚至不需要JavaScript代码如果我们想绘制少量普通图表,我们可以直接使用HTML和CSS。缺点:CSS属性不能直观的反映数据,绘制起来比较麻烦。复杂的图形会导致很多HTML元素,消耗性能。SVG的优点:SVG是对HTML/CSS的增强,弥补了HTML绘制不规则图形的能力。它通过属性设置图形,可以直观地反映数据,使用起来非常方便。缺点:图形复杂时需要的SVG元素过多,性能消耗较大。Canvas2D的优点:浏览器提供了一个简单快速的教学图形系统,可以通过一些简单的指令快速绘制出复杂的图形。由于直接操作绘图上下文,没有HTML/CSS和SVG绘图因元素数量多而消耗性能,性能比前两者快很多。缺点:Canvas2D在绘制图形过多,或者处理大量像素计算时,还是会遇到性能瓶颈。WebGL的优点:ebGL是浏览器提供的一个强大的图形系统。它功能强大,可以充分利用GPU的并行计算能力,快速准确地对图像的像素点进行运算,同时完成几十万甚至上百万次的计算。.它还内置了对3D物体投影、深度检测等处理,更适合绘制3D场景。缺点:使用起来比较复杂。综合来看,四种可视化方式各有优势,场景也不错,需要根据具体场景进行选择。总结:以上就是Web前端的4种可视化技术。你“丢弃”了吗?随着5G、大数据、物联网等技术的快速发展,可视化技术日趋成熟。很多公司都开发了低代码可视化工具平台,比如Nuvito科技的SovitChart数据可视化大屏工具,Sovit2DIndustrialWeb组态可视化引擎,Sovit3D三维可视化引擎,轻松拖拽组件,快速设计Web前端-端接口,还原真实业务场景,提升数据价值。每个数字背后都有一个重要的故事,但这需要你给他们一个清晰而令人信服的声音。