Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2019, 18:39   #1
Yelle
 
Регистрация: 28.01.2018
Сообщений: 7
По умолчанию движение/перемещение точки

помогите как реализовать движение точки или лучше ее перемещение из одного круга в другой
даже если рассматривать самый крайний круг с точкой,как поместить эту точку в соседний круг?
и чтобы это движение был овидно что она исчезла с одного круга и ушла в другой

Код:
#include "stdafx.h"
#include<Windows.h> 
#include<glut.h> //Для Linux и Windows
#include<iostream> 
#include <cmath>
#include<time.h>
#include<vector>

using namespace std;

void drawCircle(double x, double y, double r, int a)//функция для кругов
{
	glLineWidth(5); //толщина
	//glBegin(GL_POLYGON);
	glColor3ub(0, 255, 0);//цвет зеленый
	glBegin(GL_LINE_LOOP);

	for (int i = 0; i < a; i++)
	{
		double angle = 2.0 * 3.1415926 * double(i) / double(a);

		double dx = r * cosf(angle);
		double dy = r * sinf(angle);

		glVertex2f(x + dx, y + dy);
	}
	glEnd();
}

void display()
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); //рисуем
	glEnable(GL_POINT_SMOOTH);//сглаживание точек

	//точки
	glPointSize(10);
	glBegin(GL_POINTS);
	glColor3d(0, 0, 0);
	glVertex3d(-0.8, 0.0, 0); // первая точка
	glVertex3d(0.8, 0.0, 0);
	glVertex3d(0.32, -0.5, 0);
	glVertex3d(0.28, -0.5, 0);
	glEnd();

	//круги(позиции)							
	//1-влево/вправо 2-высота 3-размер/диаметр 4-количество точек
	drawCircle(-0.8, 0.0, 0.1, 30);				
	drawCircle(-0.3, 0.0, 0.1, 30);				
	drawCircle(0.8, 0.0, 0.1, 30);				
	drawCircle(0.3, 0.5, 0.1, 30);				
	drawCircle(0.3, -0.5, 0.1, 30);
	glFlush();
	glutSwapBuffers();
}

int main()
{
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
	glutInitWindowSize(1200, 1000);//размер окна
	glutCreateWindow(" ");
	glClearColor(255, 255, 255, 0);//цвет фона окна
	glutDisplayFunc(display);
	glutMainLoop();
	glEnd();
}

Последний раз редактировалось Yelle; 25.05.2019 в 18:42.
Yelle вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Движение точки по нажатию dannae Windows Forms 4 09.12.2014 17:07
Рисование и перемещение точки на экране Aleks2215 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 09.12.2010 20:51
даны две точки. организовать движение из точки А в точку Б окружности! Wi1D Помощь студентам 6 23.05.2009 19:55
Движение точки по окружности somwan Общие вопросы C/C++ 4 17.03.2009 16:30
движение точки на Canvas st01en Общие вопросы Delphi 32 09.02.2008 22:29