Convert WPF ArcSegment to DXF Arc

126
27 мая 2019, 10:30

конвертация DXF Arc в WPF ArcSegment представлена в следующем коде,

else if (entity is DXFLib.DXFArc)
            {
                DXFLib.DXFArc arc = (DXFLib.DXFArc)entity;
                Path path = new Path();
                path.Stroke = System.Windows.Media.Brushes.Black;
                path.StrokeThickness = 1;
                System.Windows.Point endPoint = new System.Windows.Point(
                    (arc.Center.X.Value + Math.Cos(arc.EndAngle * Math.PI / 180) * arc.Radius) * scaleX,
                    (arc.Center.Y.Value + Math.Sin(arc.EndAngle * Math.PI / 180) * arc.Radius) * scaleY);
                System.Windows.Point startPoint = new System.Windows.Point(
                    (arc.Center.X.Value + Math.Cos(arc.StartAngle * Math.PI / 180) * arc.Radius) * scaleX,
                    (arc.Center.Y.Value + Math.Sin(arc.StartAngle * Math.PI / 180) * arc.Radius) * scaleY);
                ArcSegment arcSegment = new ArcSegment();
                double sweep = 0.0;
                if (arc.EndAngle < arc.StartAngle)
                    sweep = (360 + arc.EndAngle) - arc.StartAngle;
                else sweep = Math.Abs(arc.EndAngle - arc.StartAngle);
                arcSegment.IsLargeArc = sweep >= 180;
                arcSegment.Point = endPoint;
                arcSegment.Size = new System.Windows.Size(arc.Radius * scaleX, arc.Radius * scaleY);
                arcSegment.SweepDirection = arc.ExtrusionDirection.Z >= 0 ? SweepDirection.Clockwise : SweepDirection.Counterclockwise;
                PathGeometry geometry = new PathGeometry();
                PathFigure pathFigure = new PathFigure();
                pathFigure.StartPoint = startPoint;
                pathFigure.Segments.Add(arcSegment);
                geometry.Figures.Add(pathFigure);
                path.Data = geometry;
                canvas.Children.Add(path);    
            }
        }

То есть здесь считывается с DXF файла все арки, они имеют 2 углы, радиус и центр, затем конвертируются в ArcSegment C# Wpf который имеет две точки и радиус. Вопрос в том, как сделать ровно наоборот?

READ ALSO
Может ли Docx библеотека для c# создавать формулы?

Может ли Docx библеотека для c# создавать формулы?

Роюсь , роюсь у https://githubcom/xceedsoftware/DocX и http://cathalscorner

149
Проверка всех CheckBox в C#

Проверка всех CheckBox в C#

Можно ли объединить все чекбоксы на форме в массив и проверить их с помощью цикла?

159
Вопрос про отправку формы

Вопрос про отправку формы

А вот вопрос: а если формам не присваивать имя и id, и несколько форм будут содержать одинаковые имена полей(input), не будет ли потом загвоздки...

158