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