www.mxdraw.com
内容索引主面
前一个向上下一个
_DMxDrawX::DrawPathToHatch 方法

把路径变成一个填充对象

IDL
[id(70), helpstring("method DrawPathToHatch")]
LONGLONG DrawPathToHatch(DOUBLE dPatternScale);

返回填充对象id

例如: VB代码

    Private Sub DrawHatch_Click()

    '把颜色改回黑白色
    MxDrawX1.DrawColor = 0

    '把线型改成实线
    MxDrawX1.LineType = ""

    '设置线宽 4
    MxDrawX1.LineWidth = 0

    '创建一个图层,名为"HatchLayer"
    MxDrawX1.AddLayer "HatchLayer"

    '设置当前图层为"HatchLayer"
    MxDrawX1.LayerName = "HatchLayer"

    '《---------------------------------------》
    '绘制一个实心三角形填充.

    '定义一个路径的开始点
    MxDrawX1.PathMoveTo 0, 3300

    '路径的一下个点
    MxDrawX1.PathLineTo 100, 3300

    '路径的一下个点
    MxDrawX1.PathLineTo 100, 3400

    '路径的一下个点
    MxDrawX1.PathLineTo 0, 3300

    '把路径拟合成一个样线
    MxDrawX1.DrawPathToHatch 1

    '《---------------------------------------》
    '绘制一个实心有圆弧边界填充.
    '定义一个路径的开始点
    MxDrawX1.PathMoveToEx 200, 3300, 0, 0, 0.3

    '路径的一下个点
    MxDrawX1.PathLineTo 300, 3300

    '路径的一下个点
    MxDrawX1.PathLineTo 300, 3400

    '路径的一下个点
    MxDrawX1.PathLineTo 200, 3300

    MxDrawX1.DrawColor = 16711680

    '把路径变成一个填充
    MxDrawX1.DrawPathToHatch 1


    '《---------------------------------------》
    '绘制一个实心有圆弧边界填充,中间挖去一块.

    '定义一个路径的开始点
    MxDrawX1.PathMoveToEx 440, 3310, 0, 0, 0

    '路径的一下个点
    MxDrawX1.PathLineTo 480, 3310

    '路径的一下个点
    MxDrawX1.PathLineTo 480, 3360

    '路径的一下个点
    MxDrawX1.PathLineTo 450, 3340

    ' 把上面定义的路径定义填充排除区域.
    MxDrawX1.PathMakeExclude True



    '定义一个路径的开始点
    MxDrawX1.PathMoveToEx 400, 3300, 0, 0, 0.3

    '路径的一下个点
    MxDrawX1.PathLineTo 500, 3300

    '路径的一下个点
    MxDrawX1.PathLineTo 500, 3400

    '路径的一下个点
    MxDrawX1.PathLineTo 400, 3300


    MxDrawX1.DrawColor = 255

    '把路径变成一个填充
    MxDrawX1.DrawPathToHatch 1



    '《---------------------------------------》
    '绘制一个有图案的填充
    'angle, x-origin,y-origin, delta-x,delta-y,dash-1,dash-2, …
    '45 = angle 是图案线角度.
    '0 = x-origin 是第一个填充线经过的点位置X坐标
    '0 = y-origin 是第一个填充线经过的点位置Y坐标
    '0 = delta-x   是下一个填充线相对前一个线的X方向偏移
    '0.125 = delta-y   是下一个填充线相对前一个线的Y方向偏移
    MxDrawX1.AddPatternDefinition "MyHatchPattern1", "((45, 0,0, 0,0.125))"
    MxDrawX1.PatternDefinition = "MyHatchPattern1"



    '定义一个路径的开始点
    MxDrawX1.PathMoveToEx 600, 3300, 0, 0, 0.3

    '路径的一下个点
    MxDrawX1.PathLineTo 700, 3300

    '路径的一下个点
    MxDrawX1.PathLineTo 700, 3400

    '路径的一下个点
    MxDrawX1.PathLineTo 600, 3300


    '把路径变成一个填充,80,是填充图案的缩放比例.
    MxDrawX1.DrawPathToHatch 100


    '《---------------------------------------》
    '绘制另一个有图案的填充
    '45, 0,0, 0,.25
    '45, .176776695,0, 0,.25, .125,-.0625
    'MxDrawX1.AddPatternDefinition "MyHatchPattern2", "((45, 0,0, 0,0.25) (45, 0.176776695,0, 0,0.25, 0.125,-0.0625))"
    'MxDrawX1.PatternDefinition = "MyHatchPattern2"


    MxDrawX1.AddPatternDefinition "MyHatchPattern2", "((0,0,0,0,8)(90,0,0,8,8,8,-8))"
    MxDrawX1.PatternDefinition = "MyHatchPattern2"



    '定义一个路径的开始点
    MxDrawX1.PathMoveToEx 800, 3300, 0, 0, 0.3

    '路径的一下个点
    MxDrawX1.PathLineTo 900, 3300

    '路径的一下个点
    MxDrawX1.PathLineTo 900, 3400

    '路径的一下个点
    MxDrawX1.PathLineTo 800, 3300


    '把路径变成一个填充,80,是填充图案的缩放比例.
    MxDrawX1.DrawPathToHatch 1
    '把所有的实体都放到当前显示视区
    MxDrawX1.ZoomAll

    '更新视区显示
    MxDrawX1.UpdateDisplay

    End Sub

 

例如: c#绘制椭圆填充

                MxDrawEllipse ellipse = new MxDrawEllipse();
                MxDrawPoint cen = new MxDrawPoint();
                cen.x = 100;
                cen.y = 200;

                ellipse.Center = cen;

                MxDrawVector3d majAxis = new MxDrawVector3d();
                majAxis.x = 100;
                majAxis.y = 0;

                ellipse.MajorAxis = majAxis;

                ellipse.RadiusRatio = 0.5;

                MxDrawPoints pts =  ellipse.GetSamplePoints(0.1);

                for (int i = 0; i < pts.Count; i++)
                {
                    if (i == 0)
                        axMxDrawX1.PathMoveTo(pts.Item(i).x, pts.Item(i).y);
                    else
                        axMxDrawX1.PathLineTo(pts.Item(i).x, pts.Item(i).y);
                }

                axMxDrawX1.PathMakeClosed();
                axMxDrawX1.DrawPathToHatch(1);
                axMxDrawX1.ZoomAll();;
Copyright (c) 2010. All rights reserved.
你认为该帮助怎么样? 发送反馈信息!