Библиотека myPolyBool — различия между версиями
=DeaD= (обсуждение | вклад) (Новая: == Назначение библиотеки == Обеспечить удобные интерфейсные функции для связи объектов POLYBOOLEAN и объек...) |
=DeaD= (обсуждение | вклад) (→myPolyBool.cpp) |
||
Строка 48: | Строка 48: | ||
points[size].x=cur->g.x*scale+shift_x; | points[size].x=cur->g.x*scale+shift_x; | ||
points[size].y=cur->g.y*scale+shift_y; | points[size].y=cur->g.y*scale+shift_y; | ||
− | |||
size++; | size++; | ||
cur=cur->next; | cur=cur->next; | ||
Строка 54: | Строка 53: | ||
points[size].x=cur->g.x*scale+shift_x; | points[size].x=cur->g.x*scale+shift_x; | ||
points[size].y=cur->g.y*scale+shift_y; | points[size].y=cur->g.y*scale+shift_y; | ||
− | |||
− | |||
size++; | size++; | ||
cur=NULL; | cur=NULL; | ||
}; | }; | ||
}; | }; | ||
− | |||
img->Canvas->Polygon(points,size-1); | img->Canvas->Polygon(points,size-1); | ||
}; | }; |
Текущая версия на 09:04, 19 января 2008
Содержание
Назначение библиотеки
Обеспечить удобные интерфейсные функции для связи объектов POLYBOOLEAN и объектов графического интерфейса Windows.
Функции (описание)
mybpDrawPAREA
Показать множество многоугольников PAREA на форме. Позволяет передать смещение и масштаб. Пока внутренние области закрашивает белым цветом (не оставлять там то, что должно было остаться).
mybpDrawPLINE2
Показать область PLINE2 на форме заполненную переданным цветом. Позволяет передать смещение и масштаб.
Файлы библиотеки
myPolyBool.h
<source lang="cpp">
- ifndef myPolyBoolH
- define myPolyBoolH
- include "polybool.h"
- include <ExtCtrls.hpp>
using namespace POLYBOOLEAN;
void mybpDrawPAREA(TImage* img, PAREA* ar, TColor border, TColor area, int shift_x, int shift_y, int scale); void mybpDrawPLINE2(TImage* img, PLINE2* pl, int shift_x, int shift_y, int scale);
- endif
</source>
myPolyBool.cpp
<source lang="cpp">
- pragma hdrstop
//---------------------------------------------------------------------------
- pragma package(smart_init)
- include "myPolyBool.h"
TPoint points[1000]; int size;
void mybpDrawPLINE2(TImage* img, PLINE2* pl, int shift_x, int shift_y, int scale){
VNODE2* cur=pl->head; size=0; while (cur!=NULL){ points[size].x=cur->g.x*scale+shift_x; points[size].y=cur->g.y*scale+shift_y; size++; cur=cur->next; if(cur==pl->head){ points[size].x=cur->g.x*scale+shift_x; points[size].y=cur->g.y*scale+shift_y; size++; cur=NULL; }; }; img->Canvas->Polygon(points,size-1);
};
void mybpDrawPAREA(TImage* img, PAREA* ar, TColor border, TColor area, int shift_x,int shift_y, int scale){
PAREA* curp=ar; while(curp!=NULL){ img->Canvas->Pen->Color=border; img->Canvas->Brush->Color=area; PLINE2* cur=curp->cntr; while(cur!=NULL){ mybpDrawPLINE2(img, cur, shift_x, shift_y, scale); cur=cur->next; img->Canvas->Brush->Color=clWhite; }; curp=curp->f; if(curp==ar){curp=NULL;}; };
};
</source>