把路径变成一个填充对象
[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();;