Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 5.00
Это_Я
-31 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 61
#1

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

03.12.2011, 23:15. Просмотров 3396. Ответов 18
Метки нет (Все метки)

Нарисовать на С++ 3D пистолет, который можно вращать(проверка на трехмерность), и за компанию , чтоб стрелял.
Как это написать на Visual C++?

Да, это снова я =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2011, 23:15
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как нарисовать на С++ 3D пистолет... (C++):

Клеевый пистолет
Какой пистолет купить? Клеить собираюсь не много. Поспрашивал, на кардачах от...

Световой пистолет Nintendo
Приветствую всех форумчан! У меня давно в голове вертится вопрос, почему не...

Изобразить цветной пистолет
нужен не сильно замароченый рисунок писталета в паскале и желательно цветной

Световой пистолет для ПК
Кто нибудь что-то слышал о световых пистолетах для ПК и про игры которые его...

Световой пистолет (электронный тир)
Всех приветствую. Зарегался тут с целью получения квалифицированного совета....

Как gl_line_loop заполнить цветом или им же нарисовать нарисовать сферу
или же нарисовать примерно точно также как на изображении, и потом при диалоге...

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

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

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

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

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

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

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

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

Добавлено через 53 секунды
Цитата Сообщение от Это_Я Посмотреть сообщение
Они- программки
Где вы видели программки с графикой на чистом С++?
0
Это_Я
-31 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 61
04.12.2011, 00:50  [ТС] #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++
0
Bers
Заблокирован
04.12.2011, 00:52 #10
Цитата Сообщение от Это_Я Посмотреть сообщение
Bers,
Как не рисуется?
А как же 3Д модели?
Как то же они делаются?
3д модель создаётся при помощи специализированного софта, типа 3д Макс, и тп.

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

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

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

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

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

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

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

Добавлено через 42 секунды
И почему ДиректИкс не советуете?
0
Chelioss
181 / 181 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
04.12.2011, 21:48 #18
Цитата Сообщение от Это_Я Посмотреть сообщение
И почему ДиректИкс не советуете?
Второе сообщение в этом топике.
0
Это_Я
-31 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 61
04.12.2011, 21:58  [ТС] #19
Chelioss,
Как ОупенГЛ не советуют.
В чем разница?
0
04.12.2011, 21:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2011, 21:58
Привет! Вот еще темы с решениями:

Как нарисовать прямоугольник, изменить его координаты и нарисовать заново уже без первого прямоугольника?
Как нарисовать прямоугольник, изменить его координаты и нарисовать заного уже...

Нарисовать флаг, нарисовать график y=ctg x Нарисовать анимацию
Дело таково у меня сейчас практика, где я очень не успиваю сделать все свои...

OpenGL VS2008 C++ (Как нарисовать поле или сетку например как в 3DS MAX)
Вообщем я тока изучаю 3д мир. вот подскажите как рисуеться поле (например как в...

Нарисовать трапецию, после чего нарисовать ее зеркальную копию (относительно диагонали 1го квадранта) и уменьшить
Собственно сделал так, только пока что без уменьшения, отзеркаленную копию...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru