示例#1
0
void Painter::BSpline(Canvas* c, IntCoord x[], IntCoord y[], int count) {
    CheckBufs(bufx, bufy, bufsize, count);
    MapList(c, x, y, count, bufx, bufy);
    if (count < 3) {
        MultiLineNoMap(c, bufx, bufy, count);
    } else {
	CreateOpenLineList(bufx, bufy, count);
	MultiLineNoMap(c, llx, lly, llcount);
    }
}
示例#2
0
void Painter::FillBSpline(Canvas* c, IntCoord x[], IntCoord y[], int count) {
    CheckBufs(bufx, bufy, bufsize, count);
    MapList(c, x, y, count, bufx, bufy);
    if (count < 3) {
        FillPolygonNoMap(c, bufx, bufy, count);
    } else {
        CreateClosedLineList(bufx, bufy, count);
        FillPolygonNoMap(c, llx, lly, llcount);
    }
}
示例#3
0
//-----------------------------------------------------------------------------
BOOL  CKartenCtrl:: SetKVZ(void)
{

    CPrjMapInputIter iter (&m_strDQ);

    while ( !iter.EndMarker()) {
        MapList (*iter);
        ++iter;
    }

    // bricht ab, wenn ein Fehler auftritt (im Gegensatz zu for_each()
    //bool fResult = boolop_and(CPrjMapInputIter(&m_strDQ), CPrjMapInputIter(), operator ());

    return true;
}
示例#4
0
void Painter::Ellipse(Canvas* c, IntCoord cx, IntCoord cy, int r1, int r2) {
    float px1, py1, px2, py2, x[8], y[8];

    px1 = float(r1)*axis; py1 = float(r2)*axis;
    px2 = float(r1)*seen; py2 = float(r2)*seen;
    x[0] = cx + px1;	y[0] = cy + py2;
    x[1] = cx - px1;	y[1] = y[0];
    x[2] = cx - px2;	y[2] = cy + py1;
    x[3] = x[2];	y[3] = cy - py1;
    x[4] = x[1];	y[4] = cy - py2;
    x[5] = x[0];	y[5] = y[4];
    x[6] = cx + px2;	y[6] = y[3];
    x[7] = x[6];	y[7] = y[2];

    CheckBufs(bufx, bufy, bufsize, 8);
    MapList(c, (float*) x, (float*) y, 8, bufx, bufy);
    CreateClosedLineList(bufx, bufy, 8);
    MultiLineNoMap(c, llx, lly, llcount);
}