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

С++ для начинающих

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

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

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

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

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

Световой пистолет для ПК - Периферийные устройства
Кто нибудь что-то слышал о световых пистолетах для ПК и про игры которые его поддерживают. Что-то мне захотелось в такое поиграть :p

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

Световой пистолет Nintendo - Игровые консоли
Приветствую всех форумчан! У меня давно в голове вертится вопрос, почему не хочет работать пистолет Dendy с современными телевизорами....

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

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

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

18
Gepar
1177 / 533 / 20
Регистрация: 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
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
04.12.2011, 00:33 #6
Цитата Сообщение от Это_Я Посмотреть сообщение
Как то же они делаются?
А что С++ единственный язык в мире?

Добавлено через 3 минуты
И вообще кто такие ОНИ?
0
Это_Я
-31 / 0 / 0
Регистрация: 27.12.2010
Сообщений: 61
04.12.2011, 00:36  [ТС] #7
Chelioss,
Мне на С++ надо
Они- программки
0
Chelioss
180 / 180 / 4
Регистрация: 08.01.2011
Сообщений: 1,133
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
04.12.2011, 01:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2011, 01:51
Привет! Вот еще темы с ответами:

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

Как нарисовать транс повышающий как на БП атх - САПР и PCB-дизайн
помогите пожалуйста как нарисовать транс повышающий как на БП атх. немогу найти все обыскал, пользуюсь протеусом 7-ой версии

Как нарисовать 3D в С++ - OpenGL
Как нарисовать 3D в С++, или может есть какиенибудь библиотеки. (без использования OpenGL и подобного). В общем мне нужно...

Скиньте пожалуйсто толковую литературу по графике Проблема в том, что как нарисовать знаю, а вот как заставить двигаться - не могу понять. - C#
Доброго времени суток! Скиньте пожалуйсто толковую литературу по графике Проблема в том, что как нарисовать знаю, а вот как заставить...


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

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

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