Bernd 发表于 2017-6-12 05:03:52

MPolygon的阴影角问题

我很难正确绘制ANSI31等的阴影角度。我想将图案与多边形的最长边对齐。
因此,我使用以下代码:
                  mPolygon.SetPattern(HatchPatternType.PreDefined, muster);
                  mPolygon.Color = umringFarbe;
                  mPolygon.PatternColor = fuellFarbe;
                  mPolygon.Layer = layer;
                  if (muster.ToUpperInvariant() != "SOLID")
                  {
                        double winkel = schraffurWinkel + laengsteLinie.Direction.Angle;
                        if (winkel > 2 * Math.PI)
                            winkel -= Math.PI;
                        if (winkel >= 0 && winkel < Math.PI)
                            mPolygon.PatternAngle = winkel;
                        else
                            mPolygon.PatternAngle = winkel - Math.PI;
                        mPolygon.PatternScale = schraffurFaktor == 0 ? 1 : schraffurFaktor;
                  }

集合是模式的名称-在本例中为ANSI31 -,laengsteLinie是多边形的最长边。
稍后,将像这样添加多边形:
                  try
                  {
                        ObjectId blockTableId = dwg.BlockTableId;
                        var bt = (BlockTable)trans.GetObject(blockTableId, OpenMode.ForRead);
                        ObjectId modelSpace = bt;
                        var btr = (BlockTableRecord)trans.GetObject(modelSpace, OpenMode.ForWrite);
                        btr.AppendEntity(mPolygon);
                        handle = mPolygon.Handle.Value;
                        mPolygon.RecordGraphicsModified(true);
                        trans.AddNewlyCreatedDBObject(mPolygon, true);
                        trans.Commit();
                        return handle;
                  }

除了阴影角度之外,一切正常。影线以45度角绘制,这是影线的定义方式,无论周围的矩形(或任何形状)如何旋转。查看MPolygon的属性,我看到,实际上定义了一个不同的角度,我用程序定义的角度。一旦我改变了一些其他的属性,比如间距,多边形就会被重画,这次是应用了角度。怎么会这样
非常感谢您的任何想法...
谢谢,贝恩德
**** Hidden Message *****

Bryco 发表于 2017-6-13 19:46:36

宾果<它看起来像是一个MPolygon。SetPattern()必须是设置图案填充的其他属性后的最后一个调用<非常感谢您的提示!
页: [1]
查看完整版本: MPolygon的阴影角问题