/
Pyatigor_Yaroslav
/
KMiVVR
Обзор
Документация
Войти
/
Pyatigor_Yaroslav
/
KMiVVR
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
Lab11/fNewtonSimple.cpp
133 строки
5 KB
Пятигор2302
upload files
21 дек 2025, 16:21
21 дек 2025, 16:21
8892648
Код
Авторство
О чём код?
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "fNewtonSimple.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "GLS.SceneViewer" #pragma link "GLS.BaseClasses" #pragma link "GLS.Scene" #pragma link "GLS.Cadencer" #pragma link "GLS.SimpleNavigation" #pragma link "GLS.NGDManager" #pragma link "GLS.Coordinates" #pragma link "GLS.Objects" #pragma link "GLS.HUDObjects" #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Randomize(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { TGLCube *GLCube1; TGLNGDDynamic *DynNGDBehav; GLCube1 = (TGLCube *)(GLDummyCube1->AddNewChild(__classid(TGLCube))); GLCube1->Material->FrontProperties->Diffuse->RandomColor(); GLCube1->Position->SetPoint((Random() - 0.5) * 2, 3, (Random() - 0.5) * 2); float scale = 0.3 + Random() * 0.7; GLCube1->CubeWidth = 1.0 * scale; GLCube1->CubeHeight = 1.0 * scale; GLCube1->CubeDepth = 1.0 * scale; DynNGDBehav = (TGLNGDDynamic *)GLCube1->GetOrCreateBehaviour(__classid(TGLNGDDynamic)); DynNGDBehav->Manager = GLNGDManager1; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { TGLSphere *GLSphere1; TGLNGDDynamic *DynNGDBehav; GLSphere1 = (TGLSphere *)(GLDummyCube1->AddNewChild(__classid(TGLSphere))); GLSphere1->Material->FrontProperties->Diffuse->RandomColor(); GLSphere1->Position->SetPoint((Random() - 0.5) * 2, 3, (Random() - 0.5) * 2); float radius = 0.2 + Random() * 0.8; GLSphere1->Radius = radius; DynNGDBehav = (TGLNGDDynamic *)GLSphere1->GetOrCreateBehaviour(__classid(TGLNGDDynamic)); DynNGDBehav->Manager = GLNGDManager1; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { TGLCone *GLCone1; TGLNGDDynamic *DynNGDBehav; GLCone1 = (TGLCone *)(GLDummyCube1->AddNewChild(__classid(TGLCone))); GLCone1->Material->FrontProperties->Diffuse->RandomColor(); GLCone1->Position->SetPoint((Random() - 0.5) * 2, 3, (Random() - 0.5) * 2); float baseRadius = 0.15 + Random() * 0.35; float height = 0.5 + Random() * 1.0; GLCone1->BottomRadius = baseRadius; GLCone1->Height = height; GLCone1->RollAngle = Random() * 360; DynNGDBehav = (TGLNGDDynamic *)GLCone1->GetOrCreateBehaviour(__classid(TGLNGDDynamic)); DynNGDBehav->Manager = GLNGDManager1; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button4Click(TObject *Sender) { TGLCylinder *GLCylinder1; TGLNGDDynamic *DynNGDBehav; GLCylinder1 = (TGLCylinder *)(GLDummyCube1->AddNewChild(__classid(TGLCylinder))); GLCylinder1->Material->FrontProperties->Diffuse->RandomColor(); GLCylinder1->Position->SetPoint((Random() - 0.5) * 2, 3, (Random() - 0.5) * 2); float radius = 0.1 + Random() * 0.4; float height = 0.4 + Random() * 1.1; GLCylinder1->BottomRadius = radius; GLCylinder1->TopRadius = radius; GLCylinder1->Height = height; GLCylinder1->RollAngle = Random() * 360; GLCylinder1->PitchAngle = Random() * 360; DynNGDBehav = (TGLNGDDynamic *)GLCylinder1->GetOrCreateBehaviour(__classid(TGLNGDDynamic)); DynNGDBehav->Manager = GLNGDManager1; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button5Click(TObject *Sender) { TGLCapsule *GLCapsule1; TGLNGDDynamic *DynNGDBehav; GLCapsule1 = (TGLCapsule *)(GLDummyCube1->AddNewChild(__classid(TGLCapsule))); GLCapsule1->Material->FrontProperties->Diffuse->RandomColor(); GLCapsule1->Position->SetPoint((Random() - 0.5) * 2, 3, (Random() - 0.5) * 2); float radius = 0.1 + Random() * 0.3; float height = 0.6 + Random() * 1.0; GLCapsule1->Radius = radius; GLCapsule1->Height = height; GLCapsule1->PitchAngle = 90 + Random() * 180; DynNGDBehav = (TGLNGDDynamic *)GLCapsule1->GetOrCreateBehaviour(__classid(TGLNGDDynamic)); DynNGDBehav->Manager = GLNGDManager1; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button6Click(TObject *Sender) { GLDummyCube1->DeleteChildren(); } //--------------------------------------------------------------------------- void __fastcall TForm1::GLCadencer1Progress(TObject *Sender, const double DeltaTime, const double NewTime) { GLSceneViewer1->Invalidate(); GLNGDManager1->Step(DeltaTime); } //---------------------------------------------------------------------------