显式几何边界

时间:2012-08-18 11:41:37

标签: wpf xaml drawing geometry

我在创建放射性几何体时遇到了以下问题: Radioactive geometry

橙色圆点代表RadialGradientBrush中心点(0,0)。它应该在黑色圆圈的中心,而不是在底部。这导致另一个问题:旋转动画。

有没有办法在几何级别修复此问题?我可以通过明确设置画笔的中心点来修复它,但这是不方便和脆弱的。

<GeometryDrawing> 
    <GeometryDrawing.Geometry>
        <GeometryGroup>
            <PathGeometry Figures="
                          M-10,0 Q0,5 10,0
                          Q20,25 25,50
                          Q0,60 -25,50
                          Q-20,25 -10,0 Z">
                <PathGeometry.Transform>
                    <TranslateTransform Y="15" />
                </PathGeometry.Transform>
            </PathGeometry>

            <PathGeometry Figures="
                          M-10,0 Q0,5 10,0
                          Q20,25 25,50
                          Q0,60 -25,50
                          Q-20,25 -10,0 Z" >
                <PathGeometry.Transform>
                    <TransformGroup>
                        <TranslateTransform Y="15" />
                        <RotateTransform Angle="120" />
                    </TransformGroup>
                </PathGeometry.Transform>
            </PathGeometry>
            <PathGeometry Figures="
                          M-10,0 Q0,5 10,0
                          Q20,25 25,50
                          Q0,60 -25,50
                          Q-20,25 -10,0 Z" >
                <PathGeometry.Transform>
                    <TransformGroup>
                        <TranslateTransform Y="15" />
                        <RotateTransform Angle="240" />
                    </TransformGroup>
                </PathGeometry.Transform>
            </PathGeometry>
            <EllipseGeometry RadiusX="10" RadiusY="10" />
        </GeometryGroup>
    </GeometryDrawing.Geometry>
    <GeometryDrawing.Brush>
        <RadialGradientBrush ColorInterpolationMode="ScRgbLinearInterpolation">
            <GradientStop Offset="0" Color="Orange" />
            <GradientStop Offset="0.03" Color="Black" />
        </RadialGradientBrush>
    </GeometryDrawing.Brush>
    <GeometryDrawing.Pen>
        <Pen Thickness="0">
            <Pen.Brush>
                <SolidColorBrush Color="Black" />
            </Pen.Brush>
        </Pen>
    </GeometryDrawing.Pen>
</GeometryDrawing>

1 个答案:

答案 0 :(得分:4)

这是因为盒子的顶部切掉了大圆圈的顶部。由于顶部的两个花瓣旋转,它被切断了。

您可以通过将外圆(透明)添加到几何图形或者通过在顶部添加边距来解决此问题。

这将向下移动图形的黑色部分,使橙色点居中并固定旋转。

这有意义吗?很难解释,如果需要,我可以创建一个草图。