谁用bcb搞过三维表面模拟,在线等待!

zhuxiaozhong 2003-09-15 10:38:53
谁用bcb搞过三维表面模拟,说说过程或原理吧!
有没有用TSCENE控件实现?
...全文
77 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuxiaozhong 2003-09-19
  • 打赏
  • 举报
回复
描述原理和功能啊
xizhouhawk 2003-09-17
  • 打赏
  • 举报
回复
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{

}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
HDC ghDC;
ghDC=GetDC(Handle);
//if(ghDC=NULL)
// return false;

int PixelFormatIndex;
PIXELFORMATDESCRIPTOR PixelFormat={
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW |
PFD_SUPPORT_OPENGL,
PFD_TYPE_RGBA,
8,
0,0,0,0,0,0,0,0,0,0,0,0,0,
16,
0,0,
PFD_MAIN_PLANE,
0,0,0,0,
};
if((PixelFormatIndex=ChoosePixelFormat(ghDC,&PixelFormat))==0)
{ShowMessage("choose fali");
}
if((SetPixelFormat(ghDC,PixelFormatIndex,&PixelFormat))==0)
{ShowMessage("set pixel failed");

}

HGLRC ghRC;
ghRC=wglCreateContext(ghDC);
wglMakeCurrent(ghDC,ghRC);
glClearColor(0.0,0.0,0.0,0.0);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
float w,h,Aspect;
w=Width;
h=Height;
if(h==0)
h=1;
gluPerspective(45.0,(GLfloat)w/(GLfloat)h,1.0,7.0);

}
//---------------------------------------------------------------------------





void __fastcall TForm1::FormResize(TObject *Sender)
{
GLfloat aspect;
glViewport(0,0,Width,Height);
aspect = (GLfloat)Width/Height;
//设置投影矩阵为当前矩阵
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
//设置投影方式为透视投影
gluPerspective(45.0,aspect,1.0,7.0);
//设置模型视矩阵为当前矩阵
glMatrixMode(GL_MODELVIEW);

}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormPaint(TObject *Sender)
{ PAINTSTRUCT ps;
BeginPaint(Handle,&ps);
GLUquadricObj *obj;

//设置模型视矩阵为当前矩阵
glMatrixMode(GL_MODELVIEW);
//初始化模型视矩阵
glLoadIdentity();
//设置视点
glTranslated(0,0,-5.0);
//设置当前颜色为灰色
glColor3f(1.0,0.0,1.0);
obj = gluNewQuadric();
//画一个线状的球体
gluQuadricDrawStyle(obj,GLU_LINE);
gluSphere(obj,1.5,50,20);
//设置当前颜色为蓝色
glColor3f(1.0,1.0,0.0);
obj = gluNewQuadric();
//绕X轴旋转30度
glRotatef(30.0,1.0,0.0,0.0);
//画一个空心圆柱体
gluQuadricDrawStyle(obj,GLU_LINE);
gluCylinder(obj,0.1,0.3,0.6,12,12);

glFlush(); //OpenGL图形绘制
EndPaint(Handle,&ps);

13,822

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧