package cn.lite3.utils
{
import flash.display.BlendMode;
import flash.display.Graphics;
import flash.geom.Point;
/**
* www.lite3.cn
* lite3@qq.com
* @author lite3
*/
public class GraphicsUtil
{
/**
* 画斑马线
*
* @param graphics
* @param beginPoint
* @param endPoint
* @param width 斑马线的宽度
* @param grap
*/
static public function drawZebraStripes(graphics:Graphics, beginPoint:Point, endPoint:Point, width:Number, grap:Number):void
{
if (!graphics || !beginPoint || !endPoint || width <= 0 || grap <= 0) return;
var Ox:Number = beginPoint.x;
var Oy:Number = beginPoint.y;
var totalLen:Number = Point.distance(beginPoint, endPoint);
var currLen:Number = 0;
var halfWidth:Number = width * .5;
var radian:Number = Math.atan2(endPoint.y - Oy, endPoint.x - Ox);
var radian1:Number = (radian / Math.PI * 180 + 90) / 180 * Math.PI;
var radian2:Number = (radian / Math.PI * 180 - 90) / 180 * Math.PI;
var currX:Number, currY:Number;
var p1x:Number, p1y:Number;
var p2x:Number, p2y:Number;
while (currLen <= totalLen)
{
currX = Ox + Math.cos(radian) * currLen;
currY = Oy + Math.sin(radian) * currLen;
p1x = currX + Math.cos(radian1) * halfWidth;
p1y = currY + Math.sin(radian1) * halfWidth;
p2x = currX + Math.cos(radian2) * halfWidth;
p2y = currY + Math.sin(radian2) * halfWidth;
graphics.moveTo(p1x, p1y);
graphics.lineTo(p2x, p2y);
currLen += grap;
}
}
/**
* 画虚线
*
* @param graphics
* @param beginPoint
* @param endPoint
* @param width 虚线的长度
* @param grap
*/
static public function drawDashed(graphics:Graphics, beginPoint:Point, endPoint:Point, width:Number, grap:Number):void
{
if (!graphics || !beginPoint || !endPoint || width <= 0 || grap <= 0) return;
var Ox:Number = beginPoint.x;
var Oy:Number = beginPoint.y;
var radian:Number = Math.atan2(endPoint.y - Oy, endPoint.x - Ox);
var totalLen:Number = Point.distance(beginPoint, endPoint);
var currLen:Number = 0;
var x:Number, y:Number;
while (currLen <= totalLen)
{
x = Ox + Math.cos(radian) * currLen;
y = Oy +Math.sin(radian) * currLen;
graphics.moveTo(x, y);
currLen += width;
if (currLen > totalLen) currLen = totalLen;
x = Ox + Math.cos(radian) * currLen;
y = Oy +Math.sin(radian) * currLen;
graphics.lineTo(x, y);
currLen += grap;
}
}
}
}
分享到:
相关推荐
下面我们将详细介绍如何使用AS3来画虚线,并结合提供的源码进行解析。 在AS3中,`Graphics`类是`DisplayObject`类的一部分,允许我们直接在舞台上进行绘图。要画虚线,我们可以利用`beginLineBitmapStyle()`或`...
在Flex AS3开发中,创建虚线效果是常见的需求,特别是在UI设计中,虚线常用于表示分隔、选中状态或非连续路径等。本文将深入探讨如何在Flex AS3环境中实现虚线效果。 首先,我们需要理解AS3(ActionScript 3)是...
我们只需要找到画线的工具,画出一条或多条线来,然后设置虚线的形状、粗细和颜色等。这样,我们就可以得到我们想要的虚线了。 此外, Word 中还有很多其他的绘图工具和功能,我们可以根据需要进行探索和学习。例如...
下面,我们将深入探讨如何在C#窗体程序中使用鼠标画虚线。 首先,我们需要创建一个Windows Forms应用程序项目。在Visual Studio中,选择"新建项目",然后在模板中找到"Windows Forms应用程序",为项目命名并创建。 ...
3. **选择画笔**: 创建并设置好画笔后,需要将其选入设备上下文(DC)以便使用。使用`SelectObject`函数将画笔对象与DC关联起来。这样,后续的绘图操作将使用这个画笔。 4. **绘图**: 使用`MoveToEx`和`LineTo`...
易语言GDI画笔虚线源码,GDI画笔虚线,取指针,置指针,方法_置指针,new,delete,销毁,创建自窗口句柄,创建自DC,创建自图像,获取DC,释放DC,取混合模式,置混合模式,取渲染原点,置渲染原点,取混合品质,置混合品质,置平滑...
在Android开发中,有时我们需要为UI元素添加虚线效果,比如分隔线、边框等。本Demo将详细讲解如何在Android中实现静态和动态画虚线的方法,这对于提升应用界面的美观性和用户体验至关重要。 首先,我们要理解...
"CAD 中画虚线框的技巧和标准图框绘制" 在 CAD 中,画虚线框是非常重要的技能,因为它可以帮助我们更好地表达结构和设计理念。下面,我们将详细介绍 CAD 中画虚线框的技巧和标准图框绘制的方法。 首先,让我们来...
许多编程语言,如Java、C#或Python,都有对应的图形库,如Java的`java.awt.Graphics` 和C#的`System.Drawing.Graphics`,这些库提供了丰富的绘图方法,包括画线、填充形状、绘制文本等。 在本项目中,`Graphics` 被...
5. **再次落笔(pd)**:在新的方向上再次落笔,继续画线。 6. **重复步骤2-5**:按照这个模式,通过多次提笔、换方向和落笔,可以创造出各种复杂的虚线图案。 在PPT的第3页,可以看到具体的编程指令序列: ``` pu ...
在本示例中,我们将探讨如何使用VC++来绘制虚线矩形和点画线矩形。首先,我们需要理解VC++中的GDI(Graphics Device Interface)图形库,它是Windows API的一部分,用于处理图形设备操作,如屏幕、打印机等。 1. **...
在探讨“flex画虚线代码”这一主题时,我们深入解析如何利用Flex框架中的图形功能来绘制虚线,以及理解这段代码背后的核心逻辑和技术要点。Flex是一个强大的开发框架,主要用于构建跨平台的富互联网应用程序(RIA)...
3. **绘制虚线** 现在我们可以使用设备上下文的`MoveTo`和`LineTo`函数来绘制虚线。例如,从(10, 10)到(200, 100): ```cpp dc.MoveTo(10, 10); dc.LineTo(200, 100); ``` 4. **自定义符号绘制** 若要绘制...
虚线可以用于表示分隔线、指示器或者为某些元素添加视觉效果。本文将深入探讨如何在C#中实现自定义虚线的绘制,包括基本原理、API使用以及实际示例。 首先,我们要了解C#中的绘图基础。在Windows Forms中,我们可以...
先画半圆,然后在底部画出虚线分割线。你可以根据需要调整虚线的位置和长度。 5. **颜色和宽度**: 使用`Paint`对象的`setColor()`方法设置线条的颜色,`setStrokeWidth()`方法设置线条的宽度。这些属性可以根据设计...
在网页设计中,分割线和虚线样式是创建布局和区分内容的重要元素。HTML和CSS提供了多种方法来实现这些效果。下面将详细讲解如何利用HTML和CSS中的`border`属性来设置虚线样式,以及创建分割线的方法。 首先,HTML...
本篇将探讨如何使用Point和Graphics类在ActionScript中实现虚线的绘制,这通常应用于Flash或Flex项目中。 Point类是ActionScript 3中的一个基础图形类,它代表二维坐标系统中的一个点。Graphics类则是用于在舞台上...
3. **资源管理**:压缩包中的"line"文件夹应包含与虚线相关的资源,如材质或预设。将这个文件夹解压并拷贝到项目的Resources目录下,这样我们可以使用Unity的Resources.Load函数在运行时加载这些资源。 4. **使用...
很难画的虚线如何在VB中实现能结合matlab autoacad进行哈哈呵呵
在iOS开发中,创建具有虚线边框的视图是一种常见的需求,这通常用于区分界面元素或者呈现某种视觉效果。本文将深入探讨如何在iOS应用中实现虚线边框,并提供具体的代码示例。 首先,我们需要了解iOS中的Core ...