ksHatch Штриховка области

Автор Simon, 16.05.19, 22:18:27

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

Simon

Как правильно заштриховать область ограниченую двумя фигурами, мне нужно заштриховать по бокам, а сверху и снизу не нужно
Алгоритм который использую:
1. ksHatch(0, 45, 3, 0, 1, 1);
2. Создаю прямоугольник
3. Создаю элипс
4. ksEndObj();
5. Повторно создаю прямоугольник и элипс
В итоге получаю такую картинку(хотя если я так понимаю, должно было только слева заштриховать)
https://prnt.sc/npi9zd


ksDocument2D doc = (ksDocument2D)kompas.Document2D();
                if (doc != null)
                {
                    ksDocumentParam docPar = (ksDocumentParam)kompas.GetParamStruct((short)StructType2DEnum.ko_DocumentParam);
                    if (docPar != null)
                    {
                        docPar.Init();
                        docPar.type = (int)DocType.lt_DocSheetStandart;
                        doc.ksCreateDocument(docPar);

                        doc.ksHatch(0, 45, 3, 0, 1, 1);

                        ksRectangleParam rectangleParam = (ksRectangleParam)kompas.GetParamStruct((short)StructType2DEnum.ko_RectangleParam);
                        rectangleParam.style = 1;
                        rectangleParam.x = 0;
                        rectangleParam.y = 0;
                        rectangleParam.height = h;
                        rectangleParam.width = l;

                        doc.ksRectangle(rectangleParam);

                        ksEllipseParam ellipseParam = (ksEllipseParam)kompas.GetParamStruct((short)StructType2DEnum.ko_EllipseParam);

                        double xc = l / 2;
                        double yc = h / 2;

                        ellipseParam.A = a;
                        ellipseParam.B = b;
                        ellipseParam.xc = xc;
                        ellipseParam.yc = yc;
                        ellipseParam.angle = 270;
                        ellipseParam.style = 1;

                        var el = doc.ksEllipse(ellipseParam);

                        doc.ksEndObj();

                        ksRectangleParam rectangleParam2 = (ksRectangleParam)kompas.GetParamStruct((short)StructType2DEnum.ko_RectangleParam);
                        rectangleParam2.style = 1;
                        rectangleParam2.x = 0;
                        rectangleParam2.y = 0;
                        rectangleParam2.height = h;
                        rectangleParam2.width = l;

                        doc.ksRectangle(rectangleParam2);

                        ksEllipseParam ellipseParam2 = (ksEllipseParam)kompas.GetParamStruct((short)StructType2DEnum.ko_EllipseParam);

                        ellipseParam2.A = a;
                        ellipseParam2.B = b;
                        ellipseParam2.xc = xc;
                        ellipseParam2.yc = yc;
                        ellipseParam2.angle = 270;
                        ellipseParam2.style = 1;

                        doc.ksEllipse(ellipseParam2);
                    }