`

TWaver动画之雷达扫描效果

阅读更多

UI和功能是好的产品的两个重要因素,很多产品往往只注重功能上的设计,而忽略了UI。在这个“看脸”的时代,就算产品的功能很强大,如果UI跟不上步伐,你的产品都会在客户心中大打折扣。
CustomScreenRecord5
做安全和监控的项目中经常会进行扫描,一般会用一个gif图片来表示软件正在进行扫描,但是如果想更换这个图标的样式,就需要美工重新做图。TWaver提供了动画效果,如果对图标的动画样式不满意,可以通过简单的更改程序来实现,避免了美工的二次返工,提高了效率。切入正题,看我们怎么实现一个动画的雷达扫描图,首先注册一个图片,用HTML5的canvas画了一个静态的雷达图,如果你熟悉TWaver的话,下边这段代码应该不难。如果不熟悉的话,可以参考产品文档自定义绘制(draw)这一节的内容。

twaver.Util.registerImage('radar', {
      v: [
        {
          shape: 'draw',
          draw: function (ctx, data, view) {
            var canvas = this.canvas,
              g = this.g,
              gradient = this.gradient,
              diameter = Math.floor(data.getWidth() * view.getZoom()),
              radius = diameter / 2,
              hueStart = 120,
              hueEnd = 170,
              hueDiff = Math.abs(hueEnd - hueStart),
              width = diameter,
              height = diameter;
            if (!canvas) {
              this.canvas = canvas = document.createElement('canvas');
            }
 
            if (width !== canvas.width || height !== canvas.height) {
              canvas.width = diameter;
              canvas.height = diameter;
              this.g = g = canvas.getContext('2d');
              this.gradient = gradient = g.createLinearGradient(radius, 0, 0, 0);
              gradient.addColorStop(0, 'hsla(' + hueStart + ', ' + 50 + '%, ' + 40 + '%, 1)');
              gradient.addColorStop(1, 'hsla(' + hueEnd + ', ' + 50 + '%, ' + 40 + '%, 0.1)');
            }
 
            g.globalCompositeOperation = 'destination-out';
            g.fillStyle = 'hsla(0, 0%, 0%, 0.1)';
            g.fillRect(0, 0, width, height);
             
            g.globalCompositeOperation = 'lighter';
            var i;
            for (i = 0; i < 4; i++) {
              g.beginPath();
              g.arc(radius, radius, ((radius - 1) / 4) * (i + 1), 0, Math.PI * 2, false);
              g.strokeStyle = 'hsla(' + (hueEnd - (i * (hueDiff / 4))) + ', ' + 50 + '%, ' + 40 + '%, 0.1)';
              g.lineWidth = 3;
              g.stroke();
            };
 
            g.beginPath();
            g.moveTo(radius - 1, 2);
            g.lineTo(radius - 1, height - 2);
            g.moveTo(2, radius - 1);
            g.lineTo(width - 2, radius - 1);
            g.strokeStyle = 'hsla(' + ((hueStart + hueEnd) / 2) + ', ' + 50 + '%, ' + 40 + '%, .03)';
            g.stroke();
             
            g.save();
            g.translate(radius, radius);
            g.rotate(data.getClient('angle'));  
            g.beginPath();
            g.moveTo(0, 0);
            g.arc(0, 0, radius, -0.0349, 0.0349, false);
            g.closePath();
            g.fillStyle = gradient;
            g.fill();  
            g.restore();
 
            ctx.scale(1 / view.getZoom(), 1 / view.getZoom());
            ctx.drawImage(canvas, -width / 2, -height / 2);
          }
        }
      ]
    });

 接下来给这个雷达图设置一个动态的效果,让雷达图不断的扫描。下边的这段代码设置了雷达指针的扫描角度,持续时间:

 new twaver.Animate({
    source: node,
    attr: 'C@angle',
    from: 0,
    to: Math.PI * 2,
    dur: 4000,
    repeat: Number.POSITIVE_INFINITY,
    reverse: false
  }).play();
}

 这样一个简单的雷达动画效果就出来了,是不是很简答,如果对这个效果用兴趣的,可以发邮件索取源代码,附上邮箱:jack.shangguan@servasoft.com

分享到:
评论

相关推荐

    twaver.js使用示例

    ”这说明提供的示例不仅包含核心的twaver.js库,还有与之配合的HTML文件“alarm.html”。Jetty是一个轻量级的Java Web服务器和Servlet容器,能够方便地运行Web应用程序。这意味着用户可以直接在Jetty环境下运行这个...

    TWaver HTML5 开发指南代码

    4. **动画效果**:提供丰富的动画效果,如淡入淡出、平滑移动等,增强用户体验。 5. **性能优化**:优化的渲染引擎确保在大量数据和复杂图表时仍保持流畅的性能。 六、示例代码 在`TwaverWeb`目录中,可能包含了多...

    TWaver的3d图形组件库,小demo

    10. **自定义样式**:TWaver允许开发者通过CSS和JavaScript自定义图形的样式和视觉效果,以满足特定的设计需求。 通过这个"TWaver的3d图形组件库,小demo",开发者不仅可以学习到如何使用TWaver库创建3D图形,还能...

    TWaver图形界面之道

    - **拓扑图组件**:具备丰富的表现形式,例如气泡信息、染色和边框、告警渲染及动画效果等。 - **其他组件**:除了拓扑图组件之外,TWaver还提供了多种传统组件,如树组件、表格、树表格、属性页以及图表(饼图、...

    twaver-java-4.1

    2. `demo.jar`:这是一个包含TWaver演示程序的Java可执行文件,可以直接运行查看TWaver的各种图表和交互效果。 3. `License.txt`:这是授权协议文件,详细列出了使用TWaver开发包的条款和限制,包括商业使用、开源...

    twaver-html5-5.9.0-api_html5_-5.9.0-api_twaver_

    Twaver是一个强大的数据可视化和网络建模工具,广泛应用于网络拓扑、流程图、组织结构等场景。5.9.0是该库的一个特定版本,可能包含了新功能、性能优化或错误修复。 描述简单明了,"twaver-html5-5.9.0-api"直接...

    twaver-java-3.7

    3. **自定义扩展**:开发者可以根据需求自定义图形样式、动画效果、事件处理,实现高度定制化的数据可视化。 4. **数据绑定**:Twaver支持与各种数据源(如数据库、CSV文件)进行绑定,动态更新图表内容,实时反映...

    twaver-flex-3.6.5 官方demo

    - **动画效果**:如何利用Twaver的动画功能实现流畅的视觉过渡。 - **自定义样式**:如何通过CSS或直接设置属性来改变图表的样式和主题。 - **性能优化**:在处理大量数据或复杂图形时,如何优化性能和响应速度。 ...

    twaver web实例源码

    同时,它也可能涉及到Twaver的各种特性,如图表类型、图形样式、动画效果等。 【压缩包子文件的文件名称列表】"TwaverWeb"表明压缩包中的主要内容可能是一个名为"TwaverWeb"的项目文件夹,里面可能包含以下部分: ...

    TWaver Web 之入门

    NULL 博文链接:https://bianrongxin.iteye.com/blog/1474676

    flex Twaver组件使用

    此外,TWaver Flex还预定义了丰富的业务对象,如告警(`twaver.IAlarm`)和告警容器(`twaver.AlarmBox`),图层(`twaver.ILayer`)和图层管理容器(`twaver.LayerBox`),以及拓扑网元(`twaver.IElement`)和拓扑...

    TWaver-java-4.1最新 官网试用版jar包及Demo

    【标题】"TWaver-java-4.1最新 官网试用版jar包及Demo" 涉及的核心知识点是TWaver,一个基于Java的图形可视化库,主要用于数据的图表展示和交互。这个版本是4.1,是官方提供的试用版,包含jar包和演示示例。 【描述...

    基于TWaver实现的3D机房Demo

    5. 动画效果:例如,设备状态变化时可通过颜色变化、闪烁等方式呈现,增强视觉效果。 为了更好地理解TWaver在3D机房管理中的应用,可以查看"demo"文件夹中的内容。这个示例可能包含HTML、CSS和JavaScript文件,展示...

    twaver 教程

    6. **动画和效果**:了解如何添加动画和视觉效果,使可视化更生动、更具吸引力。 7. **API和插件开发**:深入研究Twaver的Java API,学习如何扩展和定制功能,创建自己的插件。 8. **国际化和多语言支持**:如果你的...

    Twaver-html5.zip

    Twaver学习案例的例子

    twaver-flex中文用户手册

    8. **动画与过渡**:讲解如何添加动画效果,使图形元素在状态变化时平滑过渡,提升用户体验。 9. **高级特性**:涵盖图表组件,如图例、工具提示、缩放控件等,以及自定义行为、扩展API等进阶功能。 10. **性能...

    twaver 官方文档

    此外,它可能还会涵盖自定义主题、数据绑定、动画效果以及响应式设计等内容。 3. **TWaver Whitebook.pdf**:白皮书通常是对某一技术或产品的深入解析,可能包含了TWaver的设计理念、核心技术、实际应用场景以及与...

    twaver java 4.5.0

    2. **demo.jar**:这是TWaver的演示程序JAR文件,包含了示例代码和预设的可视化效果,用户可以通过运行它来了解TWaver的使用方法和效果。 3. **demo.sh**:这是Unix/Linux系统的脚本文件,与demo.bat类似,用于在...

    Twaver 3.7性能测试报告

    ### Twaver 3.7性能测试报告分析 #### 概述 Twaver是一款由Serva Software开发的强大软件工具,主要用于支持复杂网络环境中的数据管理和处理。本次报告主要针对Twaver Java版本(Twaver Java)在不同节点配置及连接...

Global site tag (gtag.js) - Google Analytics