0 / 0 / 1
Регистрация: 16.12.2012
Сообщений: 31
1

Переписать программу с Паскаля на С++

19.01.2015, 12:21. Показов 415. Ответов 2
Метки нет (Все метки)

Есть программа, реализующая метод закрашивания Гуро, но написана она на Паскале+opengl. Мне же нужно на С++ с opengl. Вобщем то нужно заменить все то, что написано на Паскале на С++. Буду рада любой помощи, спасибо)

Pascal
1
2
3
4
5
6
7
8
9
unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,Dialogs, Menus, OpenGL;
type TfrmGL = class(TForm) procedure FormCreate(Sender: TObject); procedure FormPaint(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormKeyDown(Sender: TObject; varKey: Word; Shift: TShiftState); procedure FormResize(Sender: TObject);
private DC : HDC; hdc: HGLRC;
end;
var frmGL: TfrmGL;
implementation {$R*.DFM} Перерисовка окна} procedureTfrmGL.FormPaint(Sender: TObject); begin glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); // очистка буфера цвета glBegin(GL_QUADS); glNormal3f(0.0,0.0,1.0); glVertex3f(1.0,1.0,1.0); glVertex3f(-1.0,1.0,1.0); glVertex3f(-1.0,-1.0,1.0); glVertex3f(1.0,-1.0,1.0); glEnd; glBegin(GL_QUADS); glNormal3f(-1.0,0.0,0.0); glVertex3f(-1.0,1.0,1.0); glVertex3f(-1.0,1.0,-1.0); glVertex3f(-1.0,-1.0,-1.0); glVertex3f(-1.0,-1.0,1.0); glEnd; glBegin(GL_QUADS); glNormal3f(0.0,1.0,0.0); glVertex3f(-1.0,1.0,-1.0); glVertex3f(-1.0,1.0,1.0); glVertex3f(1.0,1.0,1.0); glVertex3f(1.0.1.0,-1.0); glEnd; SwapBuffers(DC); end; 
Формат пиксела} procedureSetDCPixelFormat(hdc:HDC); var pfd:TPixelFormatDescriptor; nPixelFormat:Integer; begin FillChar (pfd,SizeOf(pfd),0); pfd.dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER; nPixelFormat:=ChoosePix(hdc,@pfd); SetPixelFormat(hdc,nPixelFormat,@pfd); end; {Создание формы} procedure TfrmGL.FormCreate(Sender: TObject); begin DC:=GetDC(Handle); SetDCPixelFormat(DC); hrc:=wglCreateContext(DC); wglMakeCurrent(DC,hrc); glClearColor(0.5,0.5,0.75,1.0);//öâåò ôîíà glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_DEPTH_TEST); glShadeModel(GL_Smooth); end; конец работы приложения} procedure TfrmGL.FormDestroy(Sender: TObject); begin wglMakeCurrent(0.0); wglDeleteContext(hrc); ReleaseDC(Handle,DC); DeleteDC(DC); end; procedure TfrmGL.FormKeyDown(Sender: TObject;varKey:Word; Shift:TShiftState); begin If Key = VK_ESCAPE then Close; end; procedure TfrmGL.FormResize(Sender: TObject); begin glViewport(0,0,ClientWidth,ClientHeight); glMatrixMode (GL_PROJECTION); glLoadIdentity; glFrustum (-1,1,-1,1,4,10); glMatrixMode (GL_MODELVIEW); glLoadIdentity; //этот фрагмент нужен для придания трехмерности glTranslatef(0.0,0.0,-8.0); // перенос объекта - осьZ glRotatef(30.0,1.0,0.0,0.0); // поворот объекта- осьX glRotatef(70.0,0.0,1.0,0.0); // поворот объекта-осьY InvalidateRect(Handle,nil,False); end; end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2015, 12:21
Ответы с готовыми решениями:

Переписать программу с паскаля на си
unit DrawTreeUnit; interface uses Windows, Messages, SysUtils, Variants, Classes,...

Переписать программу из паскаля в с++
Уважаемые форумчане!! Помогите пожалуйста переписать программу из паскаля в с++. uses crt; Var...

Переписать программу из Паскаля в C
Люди добрые, помогите. Нужна эта же программа, но в Си (C). Код Pascal program pr1_9; uses...

Переписать программу с Паскаля на С++
Всем привет! Возникла задача написать код на C++, но данный язык я вообще не знаю. Зато знаю pascal...

2
2831 / 1640 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
19.01.2015, 13:46 2
С таким кодом лучше к любителям спагетти.
0
0 / 0 / 1
Регистрация: 16.12.2012
Сообщений: 31
19.01.2015, 15:11  [ТС] 3
Ссори, это ворд меня подставил(( ну так поможете?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,Dialogs, Menus, OpenGL;
type TfrmGL = class(TForm) procedure FormCreate(Sender: TObject);
 procedure FormPaint(Sender: TObject);
 procedure FormDestroy(Sender: TObject);
 procedure FormKeyDown(Sender: TObject;
 varKey: Word; Shift: TShiftState);
 procedure FormResize(Sender: TObject);
 
private DC : HDC; hdc: HGLRC;
 
end;
 
var frmGL: TfrmGL;
 
implementation {$R*.DFM} Перерисовка окна} procedureTfrmGL.FormPaint(Sender: TObject);
 begin glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
 // очистка буфера цвета glBegin(GL_QUADS);
 glNormal3f(0.0,0.0,1.0); 
 glVertex3f(1.0,1.0,1.0);
 glVertex3f(-1.0,1.0,1.0);
 glVertex3f(-1.0,-1.0,1.0);
 glVertex3f(1.0,-1.0,1.0);
 glEnd;
 glBegin(GL_QUADS);
 glNormal3f(-1.0,0.0,0.0); 
 glVertex3f(-1.0,1.0,1.0);
 glVertex3f(-1.0,1.0,-1.0); 
 glVertex3f(-1.0,-1.0,-1.0);
 glVertex3f(-1.0,-1.0,1.0);
 glEnd;
 glBegin(GL_QUADS);
 glNormal3f(0.0,1.0,0.0);
 glVertex3f(-1.0,1.0,-1.0);
 glVertex3f(-1.0,1.0,1.0);
 glVertex3f(1.0,1.0,1.0);
 glVertex3f(1.0.1.0,-1.0);
 glEnd;
 SwapBuffers(DC);
 end; 
 
Формат пиксела} procedureSetDCPixelFormat(hdc:HDC);
 var pfd:TPixelFormatDescriptor;
 nPixelFormat:Integer;
 begin FillChar (pfd,SizeOf(pfd),0);
 pfd.dwFlags := PFD_DRAW_TO_WINDOW or PFD_SUPPORT_OPENGL or PFD_DOUBLEBUFFER; 
nPixelFormat:=ChoosePix(hdc,@pfd); 
SetPixelFormat(hdc,nPixelFormat,@pfd);
 end; {Создание формы} procedure TfrmGL.FormCreate(Sender: TObject);
 begin DC:=GetDC(Handle);
 SetDCPixelFormat(DC);
 hrc:=wglCreateContext(DC); 
wglMakeCurrent(DC,hrc); 
glClearColor(0.5,0.5,0.75,1.0);
//цвет фона glEnable(GL_LIGHTING);
 glEnable(GL_LIGHT0);
 glEnable(GL_DEPTH_TEST);
 glShadeModel(GL_Smooth);
 end;
 конец работы приложения} procedure TfrmGL.FormDestroy(Sender: TObject);
 begin wglMakeCurrent(0.0);
 wglDeleteContext(hrc);
 ReleaseDC(Handle,DC);
 DeleteDC(DC); 
end; 
procedure TfrmGL.FormKeyDown(Sender: TObject;varKey:Word; Shift:TShiftState);
 begin If Key = VK_ESCAPE then Close; 
end;
 procedure TfrmGL.FormResize(Sender: TObject);
 begin glViewport(0,0,ClientWidth,ClientHeight); 
glMatrixMode (GL_PROJECTION);
 glLoadIdentity; glFrustum (-1,1,-1,1,4,10);
 glMatrixMode (GL_MODELVIEW);
 glLoadIdentity;
 //этот фрагмент нужен для придания трехмерности
 glTranslatef(0.0,0.0,-8.0); 
// перенос объекта - осьZ glRotatef(30.0,1.0,0.0,0.0); 
// поворот объекта- осьX glRotatef(70.0,0.0,1.0,0.0); 
// поворот объекта-осьY InvalidateRect(Handle,nil,False); end; end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2015, 15:11
Помогаю со студенческими работами здесь

Переписать программу из паскаля в с++
program laba52; uses crt; VAR a:array of real; s:real; i:integer; begin s:=1; randomize;...

Переписать программу из паскаля в с++
Program L5Z1; var K:array of real; i:real; c:integer; begin writeln('Зформовані масиви:...

Переписать программу из паскаля на с++
const n = 15; var a:array of integer; i,j,x:integer; begin randomize;...

Нужно переписать программу с Паскаля на С++
Я написал программу на Pascal, не могу её реализовать на языке С++ const nmax=20; var a:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru