<?xml version="1.0" encoding="utf-8"?>
<mx:Label xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
//if flag is true,draw horizon line ,else vertical line.
[Bindable]
public var flag : Boolean = true;
override protected function updateDisplayList(unscaledWidth : Number, unscaledHeight : Number) : void
{
super.updateDisplayList(unscaledWidth, unscaledHeight);
/* var num : Array = [2,3];
dashLineToPattern(this, 10000,50,60,50,num); */
var labelX:Number = this.x;
var labelY:Number = this.y;
drawDashLineType(flag, labelX, labelY);
}
public function drawDashLineType(flag : Boolean, labelX : Number, labelY : Number) : void
{
var ToX:Number;
var ToY:Number ;
if(flag)
{
ToX = labelX + this.width; //draw horizon dash line
ToY = labelY;
}
else
{
ToX = labelX;
ToY = labelY + this.height; //draw vertical dash line
}
var pattern:Array = new Array;
pattern.push(2,3);
dashLineToPattern(this, labelX, labelY, ToX, ToY, pattern);
}
public static function dashLineToPattern(target:UIComponent, x1:Number, y1:Number,x2:Number, y2:Number,pattern:Array):void
{
target.graphics.lineStyle(1,0x000000);
var x:Number = x2 - x1;
var y:Number = y2 - y1;
var hyp:Number = Math.sqrt((x)*(x) + (y)*(y));
var units:Number = hyp/(pattern[0]+pattern[1]);
var dashSpaceRatio:Number = pattern[0]/(pattern[0]+pattern[1]);
var dashX:Number = (x/units)*dashSpaceRatio;
var spaceX:Number = (x/units)-dashX;
var dashY:Number = (y/units)*dashSpaceRatio;
var spaceY:Number = (y/units)-dashY;
target.graphics.moveTo(x1, y1);
while (hyp > 0)
{
x1 += dashX;
y1 += dashY;
hyp -= pattern[0];
if (hyp < 0)
{
x1 = x2;
y1 = y2;
}
target.graphics.lineTo(x1, y1);
x1 += spaceX;
y1 += spaceY;
target.graphics.moveTo(x1, y1);
hyp -= pattern[1];
}
target.graphics.moveTo(x2, y2);
}
]]>
</mx:Script>
</mx:Label>
分享到:
相关推荐
在MATLAB编程环境中,"dashLine"是一种特殊线型,用于绘制带有破折号和空隙交替的线条,常用于区分或突出显示图形中的不同数据系列。本项目"matlab开发-dashLine"旨在提供一种自定义破折号线的方式,让用户能够根据...
"dashline"可能是指在编辑控件中实现的一种特定的视觉效果,比如分隔线,它可能用虚线(dash line)来美化或组织界面元素。在图形处理类的应用中,这种细节的实现对于提升用户体验和界面美观度至关重要。 在描述中...
在VC++环境中,"VC绘图曲线dashline"是一个关于使用MFC(Microsoft Foundation Classes)库来绘制图形,特别是曲线、图标、棒图和饼图的项目。MFC是微软提供的一套C++类库,它封装了Windows API,使得开发者能够更...
"dashline.zip"压缩包中的源码很可能提供了一种定制化的编辑控件实现,可能包含了一些独特的功能或者视觉效果,如 dashed line(虚线)作为分隔符,以提升用户体验。 编辑控件通常由程序员使用各种编程语言和库来...
Dashline 是一个 m 文件,用于精确控制虚线和虚线,以生成出版质量的图形。 Matlab 中内置的线条样式是有限的,并且通常会给出很差的结果。 Dashline 使用户可以自由地生成他们希望的任何破折号和标记组合。 它基于...
虚线可以通过指定`Qt::DashLine`作为线型,并通过`setDashPattern()`方法定义虚线模式。例如: ```cpp QPen pen(Qt::DashLine); pen.setDashPattern({5, 5}); // 设置虚线模式,这里表示每5像素绘制1像素的线,再空...
这个方法接受Qt::PenStyle枚举值作为参数,例如Qt::SolidLine、Qt::DashLine、Qt::DotLine等,这些不同的值可以设置线条为实线、虚线、点线等样式。例如: ```cpp QPen pen(Qt::DashLine); painter.setPen(pen); ``...
本文将深入探讨如何使用`dashLine`函数来实现这一目标。`dashLine`函数允许用户以任意点序列创建虚线,提供更高的灵活性和定制性。 首先,我们需要理解`dashLine`的基本原理。这个函数的工作方式是将用户提供的点...
rn-dashline-master这个压缩包很可能是包含了这样一个专门用于创建虚线的React Native模块,可能包含源码、示例、文档等资源。 要理解并使用这个组件,首先你需要熟悉React Native的基本概念和API。React Native的...
Android Dash Line 安卓虚线 绘制原因 about 由于硬件加速的问题,安卓上原有的虚线方法不太好使了,为了兼容方便,还是绘制虚线比较简单。 接口说明 api 设置高度 set height setHeight(int height);...
1. DASHLINE.APS、DASHLINE.CLW、DASHLINE.CPP:这些都是C++源代码文件。其中,`.CPP` 文件通常包含C++源代码,`.APS` 可能是编译中间文件,`.CLW` 可能是类工作空间文件,包含了关于项目的类和对象信息。 2. ...
图形函数包括BAR、COLOR、COLOR3D、COLORSTICK、CROSS、CROSSDOT、DASHLINE、DATATYPE、DATE、DATESTR、DAY、DAYS1970、DECLINE、DIVIDBARS、DIVIDEND、DRAWBMP、DRAWFLAGTEXT、DRAWGBK、DRAWGBKLAST、DRAWICON、...
border.style: Border.DashLine // 仅适用于QtQuick.Controls 2.x及以上版本 } ``` 综上所述,QML提供了多种方式来绘制虚线,从简单的Canvas和PathElement到复杂的着色器和自定义效果。根据项目需求和技能水平,...
QPen redPen(Qt::红色, 2, Qt::DashLine); ``` **二、画刷(QBrush)** 画刷则用于填充形状或区域的颜色和纹理。QBrush类提供了多种填充方式,如纯色、渐变色、图案等。例如,我们可以创建一个绿色的填充刷: ```...
我们可以在绘制边框时设置QPen对象的样式为Qt::DashLine或Qt::DotLine,并通过QPen的DashPattern属性来控制虚线模式,比如每四个像素绘制一实一虚。 3. **动画效果:** 要使蚂蚁线看起来像在移动,我们可以利用Qt...
- "dashline.shtml.htm" 可能是另一个文档,更详细地讨论虚线类的实现细节,或者是提供了一些示例代码。 - "VC Empire.htm" 这个文件名可能暗示这个虚线类是为Visual C++(VC)环境设计的,或者是使用VC进行演示的...
实线和虚线的绘制则可以通过设置画笔(QPen)的样式来完成,QPen类提供了多种线型样式,包括SolidLine(实线)、DashLine(虚线)等。 在实际操作中,我们还需要考虑缩放和旋转问题。地图上的符号可能需要根据比例...
- `dashline.shtml.htm`:这个文件名可能表示一个使用破折号线进行分隔或装饰的示例,可能是关于如何在列表项之间添加分隔线的代码或教程。 - `VC Empire.htm`:此文件可能与使用Visual C++开发相关,可能包含用C++...
5,dashline.zip 一个简单的虚线类(46KB) 6,rotatedc2.zip 旋转你的图形-高级内存设备描述表演示程序(49KB) 7,rotatedc.zip 旋转你的图形-高级内存设备描述表(21KB) 8,jtdraw.zip JTDraw -- 一个绘画的例子(165KB) 9,...
3. **线型设置**:QPen::setStyle()用于设置线条样式,包括实线(Qt::SolidLine)、虚线(Qt::DashLine)、点线(Qt::DotLine)等。通过不同的线型组合,可以创造出各种视觉效果。 4. **画笔帽样式**:QPen::...