/**
* @author ixqbar@gmail.com
* @version 0.2
* @description 属性雷达图
* @see http://www.lhxyw.com/
*/
package Util
{
import flash.display.Shape;
import flash.display.Sprite;
import flash.geom.Point;
public class Radar extends Sprite
{
private var _param:Object = new Object();
private var _radar:Shape = new Shape();
/**
* 构造函数
* @param <object> param={
* feature : [0,0,0,0,0],
* position : [100,100],
* radius : 100
* }
*/
public function Radar(param:Object)
{
//默认
this._param={
feature : [20,30,40,50,60],
rate : 100,
radius : 40,
position : [50,50],
color : [0x7CC0B5,0x23796C,0x83BCB3]
};
//合并
for(var i in param)
{
this._param[i]=param[i];
}
}
/**
* 校验参数
*/
private function checkParam()
{
if(this._param['feature'].length!=5)
{
this._param['feature']=[0,0,0,0,0];
}
for(var i:int=0,len:int=this._param['feature'].length;i<len;i++)
{
if(this._param['feature'][i]<0)
{
this._param['feature'][i]=0;
continue;
}
if(this._param['feature'][i]>this._param['rate'])
{
this._param['feature'][i]=this._param['rate'];
}
this._param['feature'][i]=Math.round(this._param['radius']*this._param['feature'][i]/this._param['rate']);
}
}
/**
* 向量旋转
* 极坐标转为Flash坐标
*/
private function route(radius:int,angle:int):Point
{
return Point.polar(radius,Math.PI*angle/180);
}
/**
* 画外层
*/
private function drawOut()
{
var _angle:int=90;
var _point:Point=new Point();
this._radar.graphics.clear();
//设置线条
this._radar.graphics.lineStyle(1,this._param['color'][0]);
this._radar.graphics.moveTo(0,0);
this._radar.graphics.lineTo(0,this._param['radius']);
for(var i:int=0;i<5;i++)
{
_angle+=72;
_point=this.route(this._param['radius'],_angle);
this._radar.graphics.lineTo(_point.x,_point.y);
this._radar.graphics.lineTo(0,0);
this._radar.graphics.moveTo(_point.x,_point.y);
}
//旋转坐标系
this._radar.rotation=180;
//设置中心位置
this._radar.x=this._param['position'][0];
this._radar.y=this._param['position'][1];
}
/**
* 画内层
*/
public function drawIn()
{
var _angle:int=90;
var _point:Point=new Point();
//填充
this._radar.graphics.beginFill(this._param['color'][1]);
//内部线条
this._radar.graphics.lineStyle(1,this._param['color'][2]);
this._radar.graphics.moveTo(0,this._param['feature'][0]);
for(var i:int=1;i<=4;i++)
{
_angle+=72;
_point=this.route(this._param['feature'][i],_angle);
this._radar.graphics.lineTo(_point.x,_point.y);
this._radar.graphics.lineTo(0,0);
this._radar.graphics.moveTo(_point.x,_point.y);
}
this._radar.graphics.lineTo(0,this._param['feature'][0]);
this._radar.graphics.lineTo(0,0);
this._radar.graphics.endFill();
}
/**
* 雷达显示
*/
public function main()
{
this.checkParam();
this.drawOut();
this.drawIn();
//返回
return this._radar;
}
}
}
分享到:
相关推荐
本文将详细探讨如何使用Highcharts实现雷达图效果。 首先,我们需要了解Highcharts的基本使用。在HTML文件中,你需要引入Highcharts的库文件,通常包括`highcharts.js`和对应的样式文件`highcharts.css`。你可以...
在本文中,我们将深入探讨如何在Windows Presentation Foundation (WPF) 中实现雷达图,并结合卫星图展示,同时支持目标的增删改功能。WPF是.NET Framework中的一个强大的UI框架,用于构建桌面应用程序,提供了丰富...
在本文中,我们将深入探讨如何在Qt 5.9中实现雷达图(也称为卫星图)和余晖扫描功能。Qt是一个跨平台的应用程序开发框架,广泛用于创建GUI应用程序,而雷达图则是一种多轴图表,常用于展示多个变量之间的相对性能或...
本文将深入探讨如何利用JFreeChart库来实现一个雷达图实例,这有助于数据可视化,特别是在数据分析和报告中。 首先,我们来看`WMPolarPlot.java`,这个文件很可能包含了对极坐标图(Polar Plot)的实现,因为雷达图...
在这个特定的场景中,我们需要使用POI来实现在PPT中生成多条数据的雷达图(也称为蜘蛛图或网络图)。这种图表类型在数据分析中特别有用,因为它可以有效地展示多个变量之间的相对表现。 Apache POI提供了一个叫做`...
本文将深入探讨如何在QT中实现自定义控件——雷达图,并介绍相关的编程知识点。 首先,让我们了解雷达图(也称为蜘蛛图或星形图)。雷达图是一种多维数据可视化工具,通常用于比较多个变量在同一基准上的表现。在QT...
在这个“微信小程序开发-手绘雷达图案例源码.zip”压缩包中,包含了一个关于如何在微信小程序中实现手绘雷达图的实例代码。雷达图是一种多轴数据展示方式,常用于对比多个变量或者展示一个变量的多个维度。 首先,...
### 雷达图的实现 雷达图通常用于展示多个维度的数据比较。在SVG中,雷达图由一系列的多边形(或折线)构成,每个顶点代表一个维度,连线表示各维度的值。实现步骤如下: 1. 计算每个维度的坐标点,根据数据值映射到...
在Java编程环境中,JFreeChart库是一个强大的工具,用于创建各种复杂的图表,包括柱状图、折线图和雷达图。这些图表对于数据可视化和数据分析非常有用,可以帮助开发者直观地展示大量信息。以下是对给定文件中每个...
JFreeChart是一款强大的Java图形库,它允许开发者创建各种复杂的图表,包括我们这里关注的雷达图(也称为蜘蛛网图)。雷达图是一种多轴图表,常用于比较多个变量在同一尺度上的表现,或者展示数据在多个维度上的分布...
QT框架是一种广泛应用于...对于想在QT环境中实现复杂图形界面或者对雷达图有特殊需求的开发者,这个项目提供了宝贵的参考和实践机会。通过深入研究和实践,你可以提升自己的QT编程技能,更好地理解和运用QT的强大功能。
在本篇中,我们将深入探讨如何利用JFreeChart来制作雷达图(也称为蜘蛛图或星形图),并理解其相关知识点。 1. **JFreeChart简介** JFreeChart是一个开源项目,其目标是提供一个可以免费使用的高质量图表API。它...
VB组件中的雷达图组件是一种强大的数据可视化工具,它在信息技术领域中被广泛应用于数据分析和展示。雷达图,也称为蜘蛛图或网络图,以其多轴、多维度的特性,能够有效地展示复杂的数据集,尤其适合对比多个数据项在...
JFreeChart是一款强大的Java图表库,它允许开发者在Java应用程序或网页中创建多种类型的图表,包括雷达图(也称为蜘蛛网图)。本篇将深入探讨如何利用JFreeChart生成雷达图以及相关的数据导出功能。 **雷达图的使用...
总结来说,这个C#实例利用GDI+提供的功能,通过自定义代码实现了雷达图的绘制。这种方式不仅能够帮助开发者理解图形绘制的基本原理,还能灵活地定制图表样式,满足特定的可视化需求。在实际项目中,如果需要对数据...
雷达图是一种用来表示多维数据的图表,由于其视觉效果类似雷达的扫描波形,因此被称为雷达图。雷达图在经济学中常用于展示企业的各项财务指标,而在数理研究中,它则可以用来展示多变量数据之间的比较。虽然Excel等...
在QML中实现雷达图,我们需要自定义一个图形组件,利用QML的绘图API,如Path和PathElement,来绘制出雷达图的各个轴和连接线。 1. **基础组件创建**: 创建一个新的QML类型,例如名为`RadarChart`,并声明必要的...
Axure数据图表元件(柱图、饼图、雷达图、折线图、面积图)Axure数据图表元件Axure数据图表元件Axure数据图表元件 Axure数据图表元件(柱图、饼图、雷达图、折线图、面积图)Axure数据图表元件Axure数据图表元件...
QT自定义绘制实现雷达图是一种在QT框架下创建可视化图形的方法,主要应用于数据展示和分析。QT是一个跨平台的应用程序开发框架,支持多种操作系统,包括Windows、Linux和macOS等。利用QT的自定义绘图功能,开发者...
`wxchart` 是一个专为微信小程序设计的图表组件库,它提供了丰富的图表类型,包括柱状图、折线图、饼图以及雷达图等,使得开发者能够轻松地在小程序中实现各种数据可视化功能。下面将详细探讨这些图表组件的特性和...