Example #1
0
        private void CreateGeometries(Direct2DFactory factory)
        {
            Ellipse circle1 = new Ellipse(75, 75, 50, 50);

            _circleGeometry1 = factory.CreateEllipseGeometry(circle1);

            Ellipse circle2 = new Ellipse(125, 75, 50, 50);

            _circleGeometry2 = factory.CreateEllipseGeometry(circle2);
            // Union
            _geometryUnion = factory.CreatePathGeometry();
            using (GeometrySink sink = _geometryUnion.Open())
            {
                _circleGeometry1.CombineWithGeometry(_circleGeometry2, CombineMode.Union, Matrix3x2.Identity, 0.25f, sink);
                sink.Close();
            }
            // Intersect
            _geometryIntersect = factory.CreatePathGeometry();
            using (GeometrySink sink = _geometryIntersect.Open())
            {
                _circleGeometry1.CombineWithGeometry(_circleGeometry2, CombineMode.Intersect, Matrix3x2.Identity, 0.25f, sink);
                sink.Close();
            }
            // Xor
            _geometryXor = factory.CreatePathGeometry();
            using (GeometrySink sink = _geometryXor.Open())
            {
                _circleGeometry1.CombineWithGeometry(_circleGeometry2, CombineMode.Xor, Matrix3x2.Identity, 0.25f, sink);
                sink.Close();
            }
            // Exclude
            _geometryExclude = factory.CreatePathGeometry();
            using (GeometrySink sink = _geometryExclude.Open())
            {
                _circleGeometry1.CombineWithGeometry(_circleGeometry2, CombineMode.Exclude, Matrix3x2.Identity, 0.25f, sink);
                sink.Close();
            }
        }