画虚线矩形框的需求常常都有,虽然API里没有提供现成的线条样式,但是实现起来并不困难。
先看图,按下鼠标拖动。
主要代码如下:
package
{
import com.duowan.util.DrawUtil;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.geom.Point;
/**
* ...
* @author hacker47
*/
public class Main extends Sprite
{
private var p0:Point = new Point();
private var drawWidth:Number;
private var drawHeight:Number;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
stage.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
}
private function onDown(e:MouseEvent):void {
p0.x=mouseX;
p0.y= mouseY;
stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
stage.addEventListener(MouseEvent.MOUSE_UP, onUp);
}
private function onMove(e:MouseEvent):void {
var dx:Number = mouseX - p0.x;
var dy:Number = mouseY -p0.y;
graphics.clear();
DrawUtil.drawRect(graphics, p0, dx, dy);
}
private function onUp(e:MouseEvent):void {
stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMove);
}
}
}
public static function drawDashed(graphics:Graphics,p1:Point,p2:Point,length:Number=5,gap:Number=5):void
{
graphics.lineStyle(1);
var max:Number = Point.distance(p1,p2);
var l:Number = 0;
var p3:Point;
var p4:Point;
while(l<max)
{
p3 = Point.interpolate(p2,p1,l/max);
l+=length;
if(l>max)l=max
p4 = Point.interpolate(p2,p1,l/max);
graphics.moveTo(p3.x,p3.y)
graphics.lineTo(p4.x,p4.y)
l+=gap;
}
}
- 大小: 29.7 KB
分享到:
相关推荐
通过VB画矩形,我们可以学习到面向对象编程的概念,以及如何利用GDI+(图形设备接口)进行图形绘制。这不仅可以帮助我们理解VB的基本绘图功能,还为开发更复杂的图形应用打下基础。在实际的VB编程中,这样的技巧经常...
在提供的VB090202-用画笔画矩形源代码中,你可能会看到这些概念的实际应用,包括如何组合使用`Graphics`、`Pen`和`Brush`对象来创建各种图形和线条效果。通过实践和调试这段代码,你可以更深入地理解GDI32绘图的细节...
3. **画填充矩形** 如果需要画出填充的矩形,可以在画矩形边框之前先填充内部。VB提供了一个FillRectangle方法,但这里我们依然可以利用Line方法实现。首先画一个与矩形边界相距1像素的内切矩形,然后画出原来的...
我们需要指定一个`Pen`对象和一个矩形区域,该矩形是椭圆的边界框: ```vb Dim rect As New Rectangle(10, 10, 200, 100) Dim ellipsePen As New Pen(Color.Red, 3) g.DrawEllipse(ellipsePen, rect) ``` 3. ...
同时,`saveas`命令可以将绘制好的图形保存为各种格式的图片,便于报告或演示。 总结来说,MATLAB中的网格线和边框设置是提高图形可读性的关键步骤。通过熟练掌握这些命令和技巧,你可以根据需要创造出清晰、专业且...
第三章 PT80 NEAT 编程基础 ..................................................................................................................... 17 事件驱动和消息响应机制 .................................
对于复杂的图形操作,可以考虑将结果先画到`Bitmap`对象,然后一次性绘制到屏幕,以提高性能。 10. **示例代码** 下面是一个简单的VB.NET代码示例,演示如何创建一个红色的矩形: ```vbnet Dim g As Graphics =...
`Circle`方法是VB6.0的标准图形函数,它允许开发者直接在窗体或图片框上绘制圆形。使用`Circle`方法的基本语法如下: ```vb Circle (x1, y1, radius, [FillColor], [DrawWidth], [DrawStyle]) ``` 这里的参数含义...
矩形框应画在靠近左侧或右侧框处,一般来向画在左侧,去向画在右侧。 - **管道标注**:每段管道都应标注横向管道,在管道上方标注;竖向管道在管道左侧标注。标注内容包括管道号、管径和管道等级三部分。 - **管道...
3、开发注重交互并且文件读写复杂的的简单应用程序可以利用以CFormView为基础视的单文档视结构。 4、利用对话框得到用户输入的数据,在等级提高后可使用就地输入。 5、在对多文档要求不强烈时尽量避免多文档视结构,...
JavaScript的Canvas API是Web开发中用于在网页上动态绘制图形的重要工具。HTMLCanvasElement是HTML5引入的一个元素,用于在浏览器中创建一个可绘制的2D图形区域。这个元素具有两个基本属性:`height`和`width`,分别...