Форум программистов, компьютерный форум CyberForum.ru

Как нарисовать на С++ 3D пистолет... - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 5.00
Это_Я
-31 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 61
03.12.2011, 23:15     Как нарисовать на С++ 3D пистолет... #1
Нарисовать на С++ 3D пистолет, который можно вращать(проверка на трехмерность), и за компанию , чтоб стрелял.
Как это написать на Visual C++?

Да, это снова я =)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2011, 23:15     Как нарисовать на С++ 3D пистолет...
Посмотрите здесь:

Как нарисовать прямоугольник в С++ C++
C++ Как нарисовать графики ?
Как нарисовать график? C++
C++ Как нарисовать восьмиугольник?
Как нарисовать окружность C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
03.12.2011, 23:32     Как нарисовать на С++ 3D пистолет... #2
Цитата Сообщение от Это_Я Посмотреть сообщение
Нарисовать на С++ 3D пистолет
Да легко, сначала полгода учишь c++, потом полгода (если будешь усердно учить то хватит и шести месяцев) учишь winapi (на этом этапе ты сможешь уже нарисовать 2д пистолет) и потом ещё пол года (а в лучшем случае 182.5 дня) учишь directX и всё: пистолет стреляет и крутится, крутится и стреляет.
Это_Я
-31 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 61
03.12.2011, 23:40  [ТС]     Как нарисовать на С++ 3D пистолет... #3
Цитата Сообщение от Gepar Посмотреть сообщение
Да легко, сначала полгода учишь c++, потом полгода (если будешь усердно учить то хватит и шести месяцев) учишь winapi (на этом этапе ты сможешь уже нарисовать 2д пистолет) и потом ещё пол года (а в лучшем случае 182.5 дня) учишь directX и всё: пистолет стреляет и крутится, крутится и стреляет.
Ты меня "порадовал" .

А так вопрос серьезный. С чего начать, что как сделать, сколько шагов?
Bers
Заблокирован
04.12.2011, 00:03     Как нарисовать на С++ 3D пистолет... #4
Это_Я, нужно отдать должное вашему упорству) Столько времени носитесь с этой идеей)
Если бы ещё был бы хоть какой то результат...

1. Лазием по этой ссылочке, И внимательно проходим один урок за другим, до тех пор, пока материал не станет слишком уж сложным:
http://pmg.org.ru/nehe/index.html

2. Понимаем, что пистолеты на с++ не рисуют. И что он нам в ближайшее время не светит, и начинаем учить с++.

3. Берём нормальную IDE, обкладываемся учебниками. Учимся-учимся-учимся.

4. В качестве обязательной практики постепенно улучшаем и усложняем свой первый графический движок.

5. Если хватит упорства, то через 1-2 года - профит!
Это_Я
-31 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 61
04.12.2011, 00:21  [ТС]     Как нарисовать на С++ 3D пистолет... #5
Bers,
Как не рисуется?
А как же 3Д модели?
Как то же они делаются?
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
04.12.2011, 00:33     Как нарисовать на С++ 3D пистолет... #6
Цитата Сообщение от Это_Я Посмотреть сообщение
Как то же они делаются?
А что С++ единственный язык в мире?

Добавлено через 3 минуты
И вообще кто такие ОНИ?
Это_Я
-31 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 61
04.12.2011, 00:36  [ТС]     Как нарисовать на С++ 3D пистолет... #7
Chelioss,
Мне на С++ надо
Они- программки
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
04.12.2011, 00:40     Как нарисовать на С++ 3D пистолет... #8
Чем вам не устраивает на С++ http://pmg.org.ru/nehe/nehe01.htm ?

Добавлено через 53 секунды
Цитата Сообщение от Это_Я Посмотреть сообщение
Они- программки
Где вы видели программки с графикой на чистом С++?
Это_Я
-31 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 61
04.12.2011, 00:50  [ТС]     Как нарисовать на С++ 3D пистолет... #9
C++
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
int x0=340,y0=220,x,y,xt,yt,xxt,yyt,xx,yy,k;
float fi=0,s;
int pyr[8][3],
v[8][3]={{240,320,1},{240,160,1},{400,160,1},{400,320,1},{280,280,1},{280,120,1},{440,120,1},{440,280,1}};
float tmp[8][3];
float r[8][3],tt[8][3];
int t[8][3];
int rect[8];
void recta(int i,int j,int k,int l)
{rect[0]=pyr[i][0];
rect[1]=pyr[i][1];
rect[2]=pyr[j][0];
rect[3]=pyr[j][1];
rect[4]=pyr[k][0];
rect[5]=pyr[k][1];
rect[6]=pyr[l][0];
rect[7]=pyr[l][1];
}
 
 
 
 
 
void draw(void)
{moveto(pyr[0][0],pyr[0][1]);
lineto(pyr[1][0],pyr[1][1]);
lineto(pyr[2][0],pyr[2][1]);
lineto(pyr[3][0],pyr[3][1]); 
lineto(pyr[0][0],pyr[0][1]);
lineto(pyr[4][0],pyr[4][1]);
lineto(pyr[5][0],pyr[5][1]);
lineto(pyr[6][0],pyr[6][1]);
lineto(pyr[7][0],pyr[7][1]);
lineto(pyr[4][0],pyr[4][1]);
moveto(pyr[1][0],pyr[1][1]);
lineto(pyr[5][0],pyr[5][1]);
moveto(pyr[2][0],pyr[2][1]);
lineto(pyr[6][0],pyr[6][1]);
moveto(pyr[3][0],pyr[3][1]);
lineto(pyr[7][0],pyr[7][1]);
//raskraska
 
setfillstyle(2,11);
recta(0,1,2,3);
fillpoly(4,rect);
 
setfillstyle(5,11);
recta(1,5,6,2);
fillpoly(4,rect);
 
setfillstyle(4,11);
recta(2,6,7,3);
fillpoly(4,rect);
}
 
void matrix_r(float fi)
{r[0][0]=cos(fi);
r[0][1]=sin(fi);
r[0][2]=0;
r[1][0]=-sin(fi);
r[1][1]=cos(fi);
r[1][2]=0;
r[2][0]=0;
r[2][1]=0;
r[2][2]=1;
}
void matrix_t(int x,int y)
{int i,j;
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
if (i==j) t[i][j]=1;
else  t[i][j]=0;
t[2][0]=x;
t[2][1]=y;
}
 
void main(void)
{int gdriver = DETECT, gmode, errorcode,i,j,c;
char msg[80];
initgraph(&gdriver,&gmode,"");
  errorcode=graphresult();
  if (errorcode !=grOk)
  {printf("Graphics error:%s\n",grapherrormsg(errorcode));
  printf("Press any key to halt:");
  getch();exit(1);
  }
 settextstyle(0,HORIZ_DIR,2);
 setcolor(4);
 outtextxy(10,445,"\x01a   \x01b   esc   ");
 setcolor(11);
 settextstyle(1,HORIZ_DIR,4);
 outtextxy(10,430,"-right   -left   -end");
 setviewport(50,50,getmaxx()-50,getmaxx()-50,1);
 for(i=0;i<=7;i++)
 for(k=0;k<=2;k++)
 pyr[i][k]=v[i][k];
 draw();
  do
 {c=getch();
 switch(c)
 {case 77: fi-=0.15;
 break;
 case 75: fi+=0.15;
 break;
 }
 matrix_r(fi);
 matrix_t(-x0,-y0);
 for(i=0;i<=2;i++)
 for(k=0;k<=2;k++)
 {s=0;
 for(j=0;j<=2;j++)
 s=s+t[i][j]*r[k][j];
 tt[i][k]=s;}
 for(i=0;i<=7;i++)
 for(k=0;k<=2;k++)
 {s=0;
 for(j=0;j<=2;j++)
 s=s+v[i][j]*tt[j][k];
 tmp[i][k]=s;}
 matrix_t(x0,y0);
 for(i=0;i<=7;i++)
 for(k=0;k<=2;k++)
 {s=0;
 for(j=0;j<=2;j++)
 s=s+tmp[i][j]*t[j][k];
 pyr[i][k]=s;}
 clearviewport();
 //stiranie okna
 draw();
 }while(c!=27);
 closegraph();
 }
Turbo C++
Bers
Заблокирован
04.12.2011, 00:52     Как нарисовать на С++ 3D пистолет... #10
Цитата Сообщение от Это_Я Посмотреть сообщение
Bers,
Как не рисуется?
А как же 3Д модели?
Как то же они делаются?
3д модель создаётся при помощи специализированного софта, типа 3д Макс, и тп.

В самом же целевом проекте используется так называемый "графический движок", который умеет читать файлы 3дМакса, и выводить модельку на экран, двигать камеру, и тп.

Ты можешь воспользоваться уже существующим графическим движком, который уже умеет это все делать. И с его помощью вывести свой пистолет. Но тебе в любом случае придётся изучать документацию к такому движку. Если ты ещё сам по себе с++ не знаешь, то использовать такой движок тебе будит очень трудно.

Добавлено через 2 минуты
Это_Я, турбо си использует графическую библиотеку graphics.h

Если ты решил сидеть в древней IDE с древнем компилятором, и юзать древнею graphics.h, что ж...
удачи)

Но про пистолет лучше сразу забудь
Это_Я
-31 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 61
04.12.2011, 00:54  [ТС]     Как нарисовать на С++ 3D пистолет... #11
Bers,
То есть, можно нарисовать в 3ДМАКС и прописать его в С++ так, что бы им можно было управлять?

Добавлено через 1 минуту
И можно ли как в Турбо С++ нарисовать такую же простую программку?
Bers
Заблокирован
04.12.2011, 00:57     Как нарисовать на С++ 3D пистолет... #12
Это_Я, посмотри уроки nehe.
Это_Я
-31 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 61
04.12.2011, 01:32  [ТС]     Как нарисовать на С++ 3D пистолет... #13
А кроме нехе еще что нибудь есть?
Bers
Заблокирован
04.12.2011, 01:39     Как нарисовать на С++ 3D пистолет... #14
Цитата Сообщение от Это_Я Посмотреть сообщение
А кроме нехе еще что нибудь есть?
Есть, но из всего, что я знаю, нехе - самый простой. Остальные требуют продвинутых знаний с++
Если ты нехе не в состоянии прожевать - забей на графику, и сосредоточься на самом языке. Значит рано тебе ещё.
Это_Я
-31 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 61
04.12.2011, 01:51  [ТС]     Как нарисовать на С++ 3D пистолет... #15
Bers,
Понятно.
Периодически, по мере возникновения вопроса буду спрашивать, так что, не злитесь =)
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4237 / 2770 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
04.12.2011, 09:10     Как нарисовать на С++ 3D пистолет... #16
Это_Я, я смотрю ты не отчаиваешься) Вчера вечером была такая же тема, только ее почему-то удалили.

Дельный совет - в Qt есть примеры, там есть пример вращающегося логотипа Qt. Можешь разобрать этот пример и вместо логотипа Qt прикрутить что-нибудь свое.
Это_Я
-31 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 61
04.12.2011, 21:29  [ТС]     Как нарисовать на С++ 3D пистолет... #17
А в чем преимущество Qt над Visual C++ кроме кроссплотформенности?

Добавлено через 42 секунды
И почему ДиректИкс не советуете?
Chelioss
179 / 179 / 4
Регистрация: 08.01.2011
Сообщений: 1,131
04.12.2011, 21:48     Как нарисовать на С++ 3D пистолет... #18
Цитата Сообщение от Это_Я Посмотреть сообщение
И почему ДиректИкс не советуете?
Второе сообщение в этом топике.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2011, 21:58     Как нарисовать на С++ 3D пистолет...
Еще ссылки по теме:

Как нарисовать линию? C++
C++ Как нарисовать линию?
C++ Как нарисовать полигон

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

Или воспользуйтесь поиском по форуму:
Это_Я
-31 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 61
04.12.2011, 21:58  [ТС]     Как нарисовать на С++ 3D пистолет... #19
Chelioss,
Как ОупенГЛ не советуют.
В чем разница?
Yandex
Объявления
04.12.2011, 21:58     Как нарисовать на С++ 3D пистолет...
Ответ Создать тему
Опции темы

Текущее время: 11:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru