|
|
Другие темы раздела | |
C++ Вычисление матриц?
https://www.cyberforum.ru/ cpp/ thread1205147.html 1. Составить алгоритм программы для вычисления матриц 2. Написать программу на языке С + + для вычисления матриц |
Microsoft Visual C++ C++ Объясните, пожалуйста, что значит эта ошибка: error MSB4062: Невозможно загрузить задачу "MIBPreProcessDependencyGraph" из сборки "Microsoft.Build.CppTasks.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Проверьте правильность объявления <UsingTask>, доступность сборки со всеми ее зависимостями и наличие в задаче общего класса, реализующего... |
C++ Шифратор Дешифратор Ребят, нужна очень программа которая будет шифровать и дешифровать информацию, слова например. Метод не важен, можно Цезаря например Ключ так же, закрытый или открытый неважно Буду очень признателен, до диплома осталась неделя, а без такой проги мне капут :( https://www.cyberforum.ru/ cpp/ thread1204590.html | C++ Переименовать окно приложения Добрый день. Хочу сделать, чтобы в том случае, если приложение было открыто несколько раз, то их названия писались по разному: 1е окно - "App", 2 окно - "App", 3 окно "App" и т.д. Пытаюсь делать следующим образом: HWND window_op; window_op = FindWindow(NULL, L"App"); https://www.cyberforum.ru/ cpp/ thread1204448.html |
Нужно доработать программу, что бы считала кол-во спичек. Текст задания ниже C++ Разработать программную модель следующей игры двух игроков(пользователь-компьютер),реализовав выигрышную стратегию для компьютера:На стол выкладываются 50 спичек.Каждый игрок по очереди вынимает спички из кучи,по меньшей мере,1 и не более 6.Кто берет последнюю спичку,тот выигрывает. #include<iostream.h> #include<stdio.h> #include<stdlib.h> #include<conio.h> void main() { int a,b,k,p,m;... |
C++ Логическое высказывание
https://www.cyberforum.ru/ cpp/ thread1203587.html если дано логическое выражение, в котором все сокращается, какой будет ответ? Выполнимо, общезначимо, невыполнимо... |
C++ Разбить подсчет арифметической прогрессии на несколько потоков #include <windows.h> #include <iostream> using namespace std; CRITICAL_SECTION cs; int e; int sh; int col; int mas; https://www.cyberforum.ru/ cpp/ thread1203204.html |
На печать выдать слова, имеющие больше одной буквы «е» C++ Дана строка. На печать выдать слова, имеющие больше одной буквы «е». С++ Помогите пожалуйста. Добавлено через 3 минуты help! Добавлено через 6 минут help |
C++ Написать функцию удаления элемента
https://www.cyberforum.ru/ cpp/ thread1202663.html Не работает функция удаления элемента Помогите написать ее #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <iostream> #include <string.h> #include <stdlib.h> |
C++ переделать программу ,пожалуйста
https://www.cyberforum.ru/ cpp/ thread1202503.html #include <iostream>//cout,cin #include <chrono>//сверхточные часы #include <random>//rand() //функция для вывода массива void show(int *arr, int N) { for (int i = 0; i < N; i++) { std::cout <<arr <<'\t';//вывод элемента |
не могу написать функцию удаления C++ мой код нужно сделать функцию удаления не пойму как это сделать #include "stdafx.h" #include <stdio.h> #include <conio.h> #include <iostream> #include <string.h> |
C++ Rack Extensions Development
https://www.cyberforum.ru/ cpp/ thread1202161.html Всем программерам привет! Ищю DSP программиста для разработки плагинов для PH Reason 7! Вот как выглядят плагины в магазине: https://shop.propellerheads.se/browse/?product_type=rack-extensions-refills&sub_type=rack-extensions Плагины защищены by CodeMeter т.е. их не крякнуть, что даёт нам большое приемущество! |
3 / 3 / 1
Регистрация: 28.12.2011
Сообщений: 253
|
|
0 | |
Как переделать код для р8я частиц - C++ - Ответ 630562411.06.2014, 19:20. Показов 773. Ответов 1
Метки (Все метки)
Надо чтобы они имели скоростя одинаковы но соответсвенно их цвету--то есть как их поделить хотя бы на трир цвета с разными скоростями
#include <stdio.h> #include <cstdlib> #include <time.h> #include <math.h> #include <iostream> #include "windows.h" #include <gl\glut.h> /*Ekran*/ #define WIDTH 400 #define HEIGHT 400 /*Zagalni*/ #define GLOBAL 0.3 #define PERSONAL 0.3 #define INERT 0.3 #define DELAY 100 /*Riy*/ #define N 60 //NUmber of agents #define K 200 //Number of moves /* Obmezhennya */ #define Xmin -4 #define Xmax 6 #define Ymin -4 #define Ymax 6 double velocity[N][2]; double swarm[N][2]; double BestPers[N][3]; double BestGlob[3]; float Lrand(float min, float max) { return (min + ((rand() % 10000) / 1e4) * (max - min)); } void init() //Generate initial positions and directions { srand(time(NULL)); glClearColor(1, 1, 1, 0); glMatrixMode(GL_PROJECTION); gluOrtho2D(Xmin, Xmax, Ymin, Ymax); for(int i = 0; i < N; i++) { swarm[i][0] = Lrand(Xmin, Xmax); swarm[i][1] = Lrand(Ymin, Ymax); velocity[i][0] = Lrand(-1, 1); velocity[i][1] = Lrand(-1, 1); BestPers[i][2] = 100000; } BestGlob[2] = 100000; } void MoveWasp() //Moves the whole wasp { for(int i = 0; i < N; i++) { for(int a = 0; a < 2; a++) { velocity[i][a] = INERT * velocity[i][a] + Lrand(-1, 1) * GLOBAL * (BestGlob[a] - swarm[i][a]) + Lrand(-1, 1) * PERSONAL * (BestPers[i][a] - swarm[i][a]); swarm[i][a] = swarm[i][a] + velocity[i][a]; } } } int chkBrd(int i) //Verifies agent's position { if((Xmin <= swarm[i][0]) && (swarm[i][0] <= Xmax) && (Ymin <= swarm[i][1]) && (swarm[i][1] <= Ymax)) return 1; else return 0; } double calculate(int i) { double f; double a = swarm[i][0], b = swarm[i][1]; f = - 0.1 * fabs(1 - b) - 0.1 * fabs(1 - a) - j0(20 * a * a + b * b); // f = - 0.1 * fabs(1 - b) - 0.1 * fabs(1 - a) - j0(a * a + b * b); // f = a * sin(4 * a) + 1.1 * b * sin(2 * b); return f; } void checkBP(int i, double a) { if(a < BestPers[i][2]) { BestPers[i][2] = a; BestPers[i][1] = swarm[i][1]; BestPers[i][0] = swarm[i][0]; } } void checkBG(int i, double a) { if(a < BestGlob[2]) { BestGlob[2] = a; BestGlob[1] = swarm[i][1]; BestGlob[0] = swarm[i][0]; } } void draw(void) { glColor3f(1, 1, 0); glBegin(GL_POINTS); for(int i = 0; i < N; i++) glVertex2dv(swarm[i]); glVertex2d(BestGlob[0], BestGlob[1]); glEnd(); glFlush(); glutSwapBuffers(); } void display(int i) { std::cout << i << "\t" << BestGlob[0] << "\t" << BestGlob[1] << "\t" << BestGlob[2] << "\n"; } void go() { double a; for(int k = 0; k < K; k++) { for(int i = 0; i < N; i++) { if(chkBrd(i)) { a = calculate(i); checkBP(i, a); checkBG(i, a); } } display(k); draw(); MoveWasp(); glClear(GL_COLOR_BUFFER_BIT); Sleep(DELAY); } return; } int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); glutInitWindowPosition(600,220); glutInitWindowSize(WIDTH, HEIGHT); glutCreateWindow("Рій Комах"); glPointSize(2.0); glEnable(GL_POINT_SMOOTH); init(); glutDisplayFunc(go); glutIdleFunc(go); glutMainLoop(); } Добавлено через 22 минуты Первоначальный код -- но там надо GLSL, а я на глуте работаю и не знаю все таки как там переделывать point4 в vec4. Как там определить position[j] (0..3); typedef point4 vec4; typedefstructparticle { int color; point4 position; vec4 velocity; float mass; }particle; intnum_particles; for(inti=0;i<num_particles;i++) { particles[i].mass=1.0; particles[i].color=i%NUM_COLORS; for(intj=0;j<3;j++) { particles[i].position[j]=2.0*((float)rand()/RAND_MAX)-1.0; particles[i].velocity[j]=speed*2.0*((float) rand()/RAND_MAX)-1.0; } p articles[i].position[3]=1.0; particles[i].velocity[3]=0.0; } voiddisplay(void) { glClear(GL_COLOR_BUFFER_BIT); for(i=0;i<num_particles;i++) { point_colors[i+24]=colors[particles[i].color]; points[i+24]=particles[i].position; } glBindBuffer(GL_ARRAY_BUFFER,buffers[0]); glBufferData(GL_ARRAY_BUFFER,sizeof(points),+sizeof(colors)NULL, GL_DYNAMIC_DRAW); glBufferSubData(GL_ARRAY_BUFFER,0,sizeofpoints,points); glBufferSubData(GL_ARRAY_BUFFER,sizeof(points),sizeof(colors),colors); glDrawArrays(GL_POINTS,24,num_particles); glutSwapBuffers(); } float last_time,present_time; voididle(void) { inti,j; floatdt; present_time=glutGet(GLUT_ELAPSED_TIME);/*inmilliseconds*/ dt=0.001*(present_time-last_time);/*inseconds*/ for(i=0;i<num_particles;i++) { for(j=0;j<3;j++) { p articles[i].position[j]+=dt*particles[i].velocity[j]; particles[i].velocity[j]+=dt*forces(i,j)/particles[i].mass; } collision(i); } last_time=present_time; glutPostRedisplay(); } floatcoef;/*coefficientofrestitution*/ voidcollision(intn) { inti; for(i=0;i<3;i++) { if(particles[n].position[i]>=1.0) { particles[n].velocity[i]=-coef*particles[n].velocity[i]; particles[n].position[i]=1.0-coef* (particles[n].position[i]-1.0); } if(particles[n].position[i]<=-1.0) { particles[n].velocity[i]=-coef*particles[n].velocity[i]; particles[n].position[i]=-1.0-coef* (particles[n].position[i]+1.0); } } } bool gravity=TRUE; floatforces(inti,intj) { if(!gravity)return(0.0); elseif(j==1)return(-1.0); elsereturn(0.0); } Добавлено через 3 минуты Извиняюсь предыдущий код был первоначальным для следуещего: #include <GL/gl.h> #include <GL/glut.h> #include <windows.h> #include <stdio.h> #include <math.h> #define MAX_NUM_PARTICLES 100 typedef struct particle { int colorr; int colorg; int colorb; float positionx; float positiony; float positionz; float velocityx; float velocityy; float velocityz; float mass; } particle; particle particles[MAX_NUM_PARTICLES]; int speed=2.0; int num_particles=60; void init () { for(int i=0; i<num_particles; i++) { particles[i].mass = 1.0; particles[i].positionx = 2.0*((float) rand()/RAND_MAX)-1.0; particles[i].positiony = 2.0*((float) rand()/RAND_MAX)-1.0; particles[i].positionz = 2.0*((float) rand()/RAND_MAX)-1.0; if (i<num_particles/3) { particles[i].velocityx = speed*1.0*((float) rand()/RAND_MAX)-1.0; particles[i].velocityy = speed*1.0*((float) rand()/RAND_MAX)-1.0; particles[i].velocityz = speed*1.0*((float) rand()/RAND_MAX)-1.0; particles[i].colorr =255; particles[i].colorr =255; particles[i].colorr =0; } else if ((num_particles/3=<i) && (i<2*num_particles/3)) { particles[i].velocityx = speed*2.0*((float) rand()/RAND_MAX)-1.0; particles[i].velocityy = speed*2.0*((float) rand()/RAND_MAX)-1.0; particles[i].velocityz = speed*2.0*((float) rand()/RAND_MAX)-1.0; particles[i].colorr =255; particles[i].colorr =0; particles[i].colorr =0; } else { particles[i].velocityx = speed*2.0*((float) rand()/RAND_MAX)-1.0; particles[i].velocityy = speed*2.0*((float) rand()/RAND_MAX)-1.0; particles[i].velocityz = speed*2.0*((float) rand()/RAND_MAX)-1.0; particles[i].colorr =255; particles[i].colorr =0; particles[i].colorr =255; }; } } void display(void) { glClear(GL_COLOR_BUFFER_BIT); for(int i=0; i<num_particles; i++) { point_colors[i+24] [3] = colors[particles[i].color]; points[i+24] [3] = particles[i].positionx; } glBindBuffer(GL_ARRAY_BUFFER, buffers[0]); glBufferData(GL_ARRAY_BUFFER, sizeof(points), +sizeof(colors)NULL, GL_DYNAMIC_DRAW); glBufferSubData(GL_ARRAY_BUFFER, 0, sizeof(points),points); glBufferSubData(GL_ARRAY_BUFFER, sizeof(points), sizeof(colors),colors); glDrawArrays(GL_POINTS, 24, num_particles); glutSwapBuffers(); } float last_time, present_time; void idle(void) { int i, j; float dt; present_time = glutGet(GLUT_ELAPSED_TIME); /* in milliseconds */ dt = 0.001*(present_time - last_time); /* in seconds */ for(i=0; i<num_particles; i++) { particles[i].positionx+=dt*particles[i].velocityx; particles[i].velocityx+=dt*forces(i,1)/particles[i].mass; particles[i].positiony+=dt*particles[i].velocityy; particles[i].velocityy+=dt*forces(i,2)/particles[i].mass; particles[i].positionz+=dt*particles[i].velocityz; particles[i].velocityz+=dt*forces(i,3)/particles[i].mass; } collision(i); } last_time = present_time; glutPostRedisplay(); } float coef=1; /* coefficient of restitution */ void collision(int n) { if(particles[n].positionx>=1.0) { particles[n].velocityx = -coef*particles[n].velocityx; particles[n].positionx = 1.0-coef* (particles[n].positionx-1.0); } if(particles[n].positionx<=-1.0) { particles[n].velocityx = -coef*particles[n].velocityx; particles[n].positionx= -1.0-coef* (particles[n].positionx+1.0); } if(particles[n].positiony>=1.0) { particles[n].velocityy = -coef*particles[n].velocityy; particles[n].positiony = 1.0-coef* (particles[n].positiony-1.0); } if(particles[n].positiony<=-1.0) { particles[n].velocityy = -coef*particles[n].velocityy; particles[n].positiony= -1.0-coef* (particles[n].positiony+1.0); } if(particles[n].positionz>=1.0) { particles[n].velocityz = -coef*particles[n].velocityz; particles[n].positionz= 1.0-coef* (particles[n].positionz-1.0); } if(particles[n].positionz<=-1.0) { particles[n].velocityz = -coef*particles[n].velocityz; particles[n].positionz= -1.0-coef* (particles[n].positionz+1.0); } } bool gravity = TRUE; float forces(int i, int j) { if(!gravity) return(0.0); else if(j==1) return(-1.0); else return(0.0); } int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); glutInitWindowPosition(600,220); glutInitWindowSize(WIDTH, HEIGHT); glutCreateWindow("Рій Комах"); glPointSize(2.0); glEnable(GL_POINT_SMOOTH); init(); glutDisplayFunc(display); glutIdleFunc(display); glutMainLoop(); } Вернуться к обсуждению: Как переделать код для р8я частиц C++
0
|
11.06.2014, 19:20 | |
Готовые ответы и решения:
1
Код написан в Dev C. Не работает в Visual. Как нужно переделать код? Переделать код для unordered_set Как переделать код для ACCESS? Как переделать комовский код для .exe |
11.06.2014, 19:20 | |
11.06.2014, 19:20 | |
Помогаю со студенческими работами здесь
0
Как переделать код чтобы он работал для .xlsx файлов Как переделать код для экспорта данных в Excel под OpenOffice Calc? Переделать код для сортировки массива на код для сортировки двумерной матрицы Переделать код для Qt |