Re: Zobrazeni 3D polohy
Vojtěch Bubník
bubnikv@seznam.cz
Čtvrtek Duben 12 11:10:19 CEST 2007
Používám Cortona VRML Client z http://www.parallelgraphics.com
Přikládám příklad kódu v C++, který vyrobí VRML soubor s 3d lomenou čárou dané barvy.
Vojta Bubník
void WriteContour(const char* strPath, const std::vector<Vector3f> &contour, COLORREF color)
{
FILE *pFile = ::fopen(strPath, "wt");
::fprintf(pFile, "#VRML V2.0 utf8\n");
WriteContour(pFile, contour, color);
::fclose(pFile);
}
void WriteContour(FILE *pFile, const std::vector<Vector3f> &contour, COLORREF color)
{
::fprintf(pFile, "\
Shape {\n\
appearance Appearance {\n\
material Material {\n\
emissiveColor %f %f %f\n\
}\n\
}\n\
geometry IndexedLineSet {\n\
coord Coordinate {\n\
point [\n", (double)GetRValue(color) / 255.0, (double)GetGValue(color) / 255.0, (double)GetBValue(color) / 255.0);
int nCnt = 0;
for (std::vector<Vector3f>::const_iterator it = contour.begin(); it != contour.end(); ++ it) {
const Vector3f &pt = *it;
::fprintf(pFile, "\t\t\t%lf %lf %lf\n", pt[0], pt[1], pt[2]);
++ nCnt;
}
::fprintf(pFile, "\
]\n\
}\n\
coordIndex [\n");
for (int i = 0; i < nCnt; ++ i)
::fprintf(pFile, "\t\t\t%ld\n", i);
::fprintf(pFile, "\t\t\t0\n");
::fprintf(pFile, "\
]\n\
}\n\
}\n");
}
Další informace o konferenci Hw-list