介绍这一切的开始,是当赫兹量化通过CCanvas类首次认清自我。当使用它进行实践时,我偶然间想到利用它绘制一个指示器表盘。我的第一个表盘计相当粗糙,但最终它们都补充了新的元素,变得赏心悦目。结果就是,我现在拥有了一个小型程序库,可用一种简单易行的方式为一款指标或EA加入刻度表盘。在此文中,赫兹量化将兼顾表盘的结构,熟悉绘制和设置视觉外观的必要函数,并评估资源强度。编辑切换为居中添加图片注释,不超过字(可选)图例.1.刻度表盘编辑切换为居中添加图片注释,不超过字(可选)1.坐标和锚点表盘在图表上的定位有两种类型:绝对和相对。在绝对定位情况下,坐标代表自锚点边角沿X和Y数轴的像素距离。在相对定位情况下,坐标原点根据指定相对定位类型创建。当选择了垂直类型,原点位于参考对象之下或之上(如果分别选择了锚点上边角或下边角)。当选择了垂直类型,它位于锚点边角方向的左侧或右侧。在此种情况下,指定的坐标表示距其原点的偏移。正偏移量导致物体远离参考对象。当负偏移量的情况,则物体侵占参照对象。参照对象可以表示为另一个表盘对象。至关重要的是,这两个对象将具有相同的锚点边角。图例.2描绘相对定位的一个示例。编辑添加图片注释,不超过字(可选)图例.2.表盘的相对定位让我们回顾一下每一个表盘的设置:表盘"gg01":相对定位被禁止。水平偏移—40,垂直偏移—40。表盘"gg02":相对定位—水平,参考对象—"gg01"。自坐标原点(点A)的水平偏移—15,垂直偏移—0。表盘"gg03":相对定位—垂直,参照对象—"gg01"。自坐标原点(点B)的水平偏移—0,垂直偏移—15。表盘"gg04":相对定位—垂直,参照对象—"gg02"。自坐标原点(点C)的水平偏移—50,垂直偏移—15。如果图表上有若干指标含有表盘,则相对定位有利于输入设置。如果您决定改变某一个表盘的大小,其它表盘的坐标将会自动重新计算。函数GaugeCreate()设置定位类型和坐标。2.表盘元素刻度表盘由两类图形对象组成。其一称为刻度层,另一个称为表针层。两类图形对象都有相同的坐标。表针层位于刻度层之上。再输入参数里设置的表盘名作为这两类对象的前缀。例如,如果表盘名是"Gauge01",则刻度层将被称为"Gauge01_s",而表针层将名为"Gauge01_n"。图例.3描绘表盘结构。编辑切换为居中添加图片注释,不超过字(可选)图例.3.表盘结构刻度层包括:边框(1)刻度标记(5,6,7)刻度标签(4)高亮范围(2,12)图解(3,10,11)图解是以用途区分:表盘描述(3)测量单位(11)当前数值(10)刻度标签倍数(省略)刻度划分为:主要(7)中等(5)次要(6)只有主要刻度点有标签。刻度步长设定为一个数字值。中等刻度步长依据指定的主要刻度之间的中等标记数量计算。次要刻度步长依据指定的中等刻度之间的次要标记数量计算。次要和中等刻度可以省略。表针层包括:表针(8)表针中心(9)2.1.大小图例.3描绘一些表盘元素的大小:d—表盘大小,其与表盘外轮廓线的直径相对应b—边框大小g—边框与刻度元素之间的空间大小c—表针中心的大小。注释。只有表盘直径以像素为单位设置大小(图例.3中的"d")。所有其它元素和字体依照条件单位设置,且它们的大小以直径的百分比计算。这样便于缩放。改变直径,则所有其它尺寸将被按比例重新计算。计算系数已列于宏替换章节,且可由用户修改。2.2.实体形状表盘的形状有两种类型:圆形和扇形。如果刻度范围角度小于度,扇形更加便利。编辑切换为居中添加图片注释,不超过字(可选)图例.4.表盘形状图例.4描绘一个圆形表盘(a)和两个扇形表盘(b,c)。函数GaugeSetCaseParameters()用于设置期望的实体形状。2.3.刻度这是表盘十分重要的元素。数据可读性依据其显示。刻度不应过于复杂,但在同一时间,它必须能足够体现信息。选择刻度极值,以及主要标记的步长,需要特别注意。函数GaugeSetScaleParameters()允许设置刻度范围,它的旋转和极值(最小值和最大值)。最小值可以在左侧(顺时针)或右侧(逆时针)。刻度范围是两个刻度极值间由半径向量构成的扇形所包含的夹角。它的示范在图例.5.编辑切换为居中添加图片注释,不超过字(可选)图例.5.刻度范围刻度旋转是自表盘中心的向上垂直线,与刻度范围的平分点的偏离角度。它的示范在图例.6.编辑切换为居中添加图片注释,不超过字(可选)图利.6.刻度旋转角度结合刻度范围角度和旋转角度可以帮助您以十分灵活方式的设置表盘的外观。图例.4(c)示范一个90度范围和45度旋转的表盘。最大和最小刻度值是重要参数,它们应依据显示变化的允许数值范围进行选择。零标记为方便起见可以省略。如果您的变化范围从到,那么刻度零不会绘制任何点。图例.7描绘最大和最小刻度值的例子。编辑切换为居中添加图片注释,不超过字(可选)图例.7.最大和最小刻度值a)数值从0到,顺时针b)数值从-到,顺时针c)数值从-到0,顺时针d)数值从到0,逆时针e)数值从到,顺时针f)数值从0到-,逆时针
转载请注明:
http://www.aideyishus.com/lkzp/6714.html