内容へ移動
oblate_prolate
-
KobaWiki@RCNP
トレース:
文書の表示
管理
最近の変更
サイトマップ
ログイン
検索
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
===== oblate_prolate ===== <code> // Show rendering of parametric surfaces. // Author: Timur Pocheptsov void oblate_prolate() { // A parametric surface is defined by three functions: // S(u, v) : {x(u, v), y(u, v), z(u, v)}. // To create parametric surface and draw it one has to: // 1. Create canvas, which support OpenGL drawing (two ways): // a. Call gStyle->SetCanvasPreferGL(kTRUE) // b. Or create canvas with name, wich contains "gl". // 2. create TGLParametricEquation object. // TGLParametricEquation *eq = new TGLParametricEquation("name", // "some FORMULA here - x(u, v)", // "some FORMULA here - y(u, v)", // "some FORMULA here - z(u, v)", // uMin, uMax, vMin, vMax); // where FORMULA is the same string (mathematical expression), // as in TF2, but you should use 'u' (or 'U') instead of 'x' // and 'v' (or 'V') instead of 'y'. // 3. Call equation->Draw(); // Parametric surfaces support 21 color "schemes", you can change // the color: // -place mouse cursor above surface (surface is selected in pad) // -press 's' or 'S'. gStyle->SetCanvasPreferGL(kTRUE); TCanvas *c = new TCanvas("canvas","Parametric surfaces with gl", 100, 10, 700, 700); c->SetFillColor(42); gStyle->SetFrameFillColor(42); TGLParametricEquation *p3 = new TGLParametricEquation("ob_pr", "(1+0.6*sqrt(5/(16*pi))*(3*cos(u)*cos(u)-1))*sin(u)*cos(v)", "(1+0.6*sqrt(5/(16*pi))*(3*cos(u)*cos(u)-1))*sin(u)*sin(v)", "(1+0.6*sqrt(5/(16*pi))*(3*cos(u)*cos(u)-1))*cos(u)", 0, TMath::Pi(), 0, TMath::TwoPi()); p3->SetConstrained(1); p3->Draw(); // TEveManager::Create(); // TEvePlot3D *x = new TEvePlot3D("test"); // x->SetPlot(p3,""); // gEve->AddElement(x); // TEveArrow *ozz = new TEveArrow(1., 0., 0., 0, 0., 0.); // ozz->SetMainColor(kRed); // gEve->AddElement(ozz); // TEveArrow *zoz = new TEveArrow(0., 1., 0., 0, 0., 0.); // zoz->SetMainColor(kGreen); // gEve->AddElement(zoz); // TEveArrow *zzo = new TEveArrow(0., 0., 1., 0, 0., 0.); // zzo->SetMainColor(kBlue); // x->RefMainTrans().Scale(0.8, 0.8, 1.2); // gEve->AddElement(zzo); // gEve->Redraw3D(kTRUE); // gEve->GetDefaultGLViewer()->RequestDraw(); } </code>
文書の表示
以前のリビジョン
メディアマネージャー
文書の先頭へ