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); } }
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); } }
//----------------------------------------------------------------------------- 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; }
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); }