|
Опубликовано 01.10.2016 10:50 (8 лет назад) # |
День #1
Всё началось этим осенним морозным утром. Когда я зашел на сайт и увидел сообщение о начале нового конкурса. И тут-же начал писать сообщение о своих планах. И полный энтузиазма в предвкушении долгой кропотливой работы над адоптацией своих наработок в мир кросплатформа начал строить планы на текущий день.
Но не успел я дописать свое сообщение, как в комнату зашел брат и сообщил что ему нужна помощь в установке новых ворот в гараж. Ивот так мне пришлось отложить работу по адаптации((.
Сейчас пишу это сообщение уже после 5часов работ на улице. Ноги продрогли. Мезинец на правой руке от холода не придвегается к остальным. Всем своим видом говоря"идите нафиг я сваливаю".
Но всё это меня не останавливало, будучи полным энтузиазма я побежал на кухню сделать горячего кофе. И приняться за работу. Как увидел кусок рыбы, который я вчера достал из морозилк дабы приготовить недавно увиденный в инете рецепт "Рыба в медово-лимонном маринаде". И понял что приступить к работе мне сразу опять таки не получиться.
Сейчас допишу сообщение и пойду помещю рыбу в маринад. После этого у меня будет минут 30 пока она маринуется. может чего сделаю. посмотрим))) |
|
|
|
Опубликовано 01.10.2016 11:13 (8 лет назад) # |
ах да
вот рецепт рыбы))) |
|
|
|
Опубликовано 01.10.2016 15:30 (8 лет назад) # |
Итак, подводя итоги уже почти минувшего дня. Что я смог сделать.
Установил Code::Block версии 16.01
Надо отметить что это вынужденная мера. связанная с тем что я перешел от релиза 14.04 к 16.04 Ubuntu.
Перейдя на новый релиз прежняя версия КД постоянно зависала при попытке захода в меню программы.
На новой версии этого не наблюдается. но по живём увидим.
также хочу отметить что через стандартную установку убунты ставится именно та самая глюченная версия поэтому нужно устанавливать через терминал, предварительно добавив репозиторий.
А именно
# add-apt-repository ppa:damien-moore/codeblocks-stable
# apt-get update
# apt install codeblock
# codeblocks
Далее попытался установить GLUT. натолкнулся на ряд проблем с компиляцией либ под линукс. в итоге не смог осилить эти make файлы. но наткнулся на форуме на одно полезное замечание что glut давно мёртв и следует использовать FreeGLUT так и поступил. всё встало как родное. парой команд.
apt-get install freeglut3 freeglut3-dev
Затем поставил glew. Честно признаюсь показалось что он у меня уже стоит. в любом случае делается это прям из менеджера приложений.
Позже долго и мучительно настраивал КД под себя.( стандартный белый фон не устраивал вовсе)
Закончив с мучениями нашел простейший пример OpenGl и скопировал его в новый проект. и тут-же натолкнулся на неприятнейший эффект. при русской раскладке не работают горячие клавиши. Если кто сталкивался с такой проблемой подскажите как решали.
Но в итоге код вставил
#include <GL/glut.h>
#include <iostream>
using namespace std;
void draw(void) {
// Black background
glClearColor(0.0f,0.0f,0.0f,1.0f);
glClear(GL_COLOR_BUFFER_BIT);
//Draw i
glFlush();
}
//Main program
int main(int argc, char **argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA|GLUT_SINGLE);
glutInitWindowPosition(50, 25);
glutInitWindowSize(480,480);
glutCreateWindow("Hello OpenGL");
glutDisplayFunc(draw);
glutMainLoop();
return 0;
}
для запуска данного кода нужно подключить две либы. -lGL -lglut
как выяснилось сделать это можно project->Build option->Linker settings
в результате всё запустилось!!!!!! УРА аплодисменты зановес. |
|
|
|
Опубликовано 01.10.2016 15:36 (8 лет назад) # |
немного отойдя от разработки хочу сказать о самих сообщениях которые я буду выкладывать. как могли заметить они будут нести как и простые размышления так и иметь конкретные инструкции по работе. прошлый коммет можно назвать "запуск OpenGL под Linux"
надеюсь все мои посты будут иметь как развлекательный так и образовательный характер. В надежде в последствии обеденить это всё в цикл статей и выложить гденибуть на хабре или иных ресурсах.
Также жду ваших комментариевЭ, конструктивной критики, советов. можно прям здесь в теме. |
|
|
|
Опубликовано 02.10.2016 14:07 (8 лет назад) # |
Мне кажется лучше стоит больше рассказать о самом проекте, что он из себя будет представлять, а не каким образом он будет компилироваться. |
|
|
|
Опубликовано 02.10.2016 14:19 (8 лет назад) # |
c клавишами по пробуй что то типа такого:
if(key_press("W") || key_press("Ц") )
{
position.z += direction.z * deltaTime * speed;
position.x += direction.x * deltaTime * speed;
} |
|
|
|
Опубликовано 02.10.2016 15:01 (8 лет назад) # |
Kaps написал:
Мне кажется лучше стоит больше рассказать о самом проекте, что он из себя будет представлять, а не каким образом он будет компилироваться.
Пожалуй ты прав, позже опишу больше суть и саму идею проекта. но описние самих действий тоже ниикуда не денутся.
ProSergeant написал:
c клавишами по пробуй что то типа такого:
if(key_press("W") || key_press("Ц") )
{
position.z += direction.z * deltaTime * speed;
position.x += direction.x * deltaTime * speed;
}
Не так меня понял. Проблема раскладки не в моём проекте ,а в самом Code::Block под Linux. |
|
|
|
Опубликовано 03.10.2016 14:38 (8 лет назад) # |
И так, День 3#
Весь день будучи на работе не как из головы не шли мысли о том как же описать суть всего проекта, более подробно и конструктивно.
Но как и всега в голову приходят не те мысли что нужны но это не делает их менее достойными.
И вот что я надумал. Ранее процесс создания статей предполагался по схеме.
Поставил цель-Нашел инфу->Прочел ->Проверил->Подправил->Оформил пост->получил комментарии->Подправил по необходимости от комментариев.
Теперь буду действовать иначе.
поставил цель-> описал её на форуме->получил напутствия(типа использую для этого такуюто либу и тд.)->проверил->оформил результат->получил коммент->подправил->далее пункт 1
Это поможет мне сократить поиски полезной информации по теме. Также сделать вас более причастными к моему проекту. Что будет соответствовать требованию конкурса. Мотивировать других.
О как))
а о сути проекта чуть позже))
|
|
|
|
Опубликовано 04.10.2016 05:23 (8 лет назад) # |
День 4#
тем временем слегка отлынил от работы и поигрался с OpenGL
настряпал небольшой код. который в последствии хочу перенести на GLSL.
выглядит примерно так
|
|
|
|
Опубликовано 04.10.2016 05:36 (8 лет назад) # |
ну и сам код сего чуда
#include <cmath>
#include <GL/glut.h>
#define WIDTH 800
#define HEIGHT 640
using namespace std;
//рисование точки с координатами (x, y) передаваемым в функцию цветом(RGB)
void draw_dot ( int x, int y, float *clr ) {
glColor4f (clr[0], clr[1], clr[2],1); //цвет рисования
glVertex2i ( x, y );
}
void draw_biomorph () {
static float time=0;
float f,d ;
time+=0.5;
float clr_black[] = { 0, 0, 0 }, new_clr[3];
glClear ( GL_COLOR_BUFFER_BIT );//очищаем буфер
glBegin ( GL_POINTS );//начинаем отрисовку
//пробегаем все пиксели
for ( int x = 0; x < WIDTH ; x++ )
for ( int y = 0; y < HEIGHT ; y++ )
{
float px,py,a;
px = (((float)x/WIDTH)*2-1);//преобразуем координаты к виду [-1;1]
py = (((float)y/HEIGHT)*2-1);//преобразуем координаты к виду [-1;1]
//создаём искажение в форме клевера и рябь на ней
a = 2.0*atan(py/px);
px/=0.5 + 0.02 * sin(5.0 * a - time * 16.0)*cos(50/a);
py/=0.5 + 0.02 * sin(5.0 * a - time * 16.0)*cos(50/a);
px*=1.0/sin(a) ;
py*=1.0/sin(a) ;
f = 1.40 + 0.2 * cos(time * 0.14);// добавляем уменьшение/увеличение дугии
float lenght = (float)sqrt(px*px+py*py);
d = (abs(lenght-f)*(abs(sin(time/10))*10.0+2));// добавляем колебание толщины дугии
//добовляем новый вертекс.
new_clr[0]=0./d;
new_clr[1]=0.2/d;
new_clr[2]=2.22/d;
draw_dot ( x, y, new_clr );
}
glEnd ();
glutSwapBuffers();
}
void init () {
glClearColor ( 0.0, 0.0, 0.0, 0.0 ); //цвет фона(RGBA, чёрный)
glPointSize ( 1.0 );
glMatrixMode ( GL_PROJECTION ); //матрица проекций
glLoadIdentity (); //замена текущей матрицы на единичную
gluOrtho2D ( 0, WIDTH,HEIGHT, 0);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
int main ( int argc, char** argv ) {
glutInit ( &argc, argv ); //инициализация OpenGL Utility Toolkit
//режим окна(одиночный буфер и RGB-палитра)
glutInitDisplayMode ( GLUT_DOUBLE | GLUT_RGBA |GLUT_ALPHA );
//установка размеров окна(ширина и высота в пикселях)
glutInitWindowSize ( WIDTH, HEIGHT );
//положение окна относительно левого верхнего угла экрана
glutInitWindowPosition (500, 300);
//создание окна c заголовком Biomorph
glutCreateWindow ("Biomorph");
//инициализация функции, отвечающей за рисование в окне
glutDisplayFunc ( draw_biomorph );
init (); // дополнительные параметры
glutIdleFunc(draw_biomorph);
glutMainLoop (); //вход в главный цикл
return 0;
}
редакция от KeeperKira, 04.10.2016 06:13 |
|
|
|
Опубликовано 04.10.2016 05:45 (8 лет назад) # |
тем кому лень компилироваь вот версия под Linux.
Под винду сделаю позже.
редакция от KeeperKira, 04.10.2016 05:46 |
|
|
|
Опубликовано 04.10.2016 05:50 (8 лет назад) # |
Задачка для любителей головоломок.
Как сменить форму клевера на сердце?))) |
|
|
|
Опубликовано 04.10.2016 07:20 (8 лет назад) # |
KeeperKira написал:
Задачка для любителей головоломок.
Как сменить форму клевера на сердце?)))
Надо заменить 4 на 1. |
|
|
|
Опубликовано 04.10.2016 07:28 (8 лет назад) # |
rip написал:
KeeperKira написал:
Задачка для любителей головоломок.
Как сменить форму клевера на сердце?)))
Надо заменить 4 на 1.
тут не используются эпициклоиды |
|
|
|
Опубликовано 04.10.2016 07:44 (8 лет назад) # |
KeeperKira написал:
Задачка для любителей головоломок.
Как сменить форму клевера на сердце?)))
смени систему координат по Y с [-1, 1] на [0, 1] |
|
|
|
Опубликовано 04.10.2016 07:56 (8 лет назад) # |
Dan написал:
смени систему координат по Y с [-1, 1] на [0, 1]
получилось вот так
|
|
|
|
Опубликовано 04.10.2016 07:57 (8 лет назад) # |
наверно хотел сказать сменить на -1;0
но и это не предел совершенства.
редакция от KeeperKira, 04.10.2016 07:58 |
|
|
|
Опубликовано 04.10.2016 08:03 (8 лет назад) # |
скомпирлировал вод винду.
И тутже заметил проблему, под виндой программа заметно тормозит в то время как на линуксе работает отлично. Надеюсь проблема в версии драйверов под виндой. но может быть всё гораздо хуже.
Проверяйте как работает в живую
редакция от KeeperKira, 04.10.2016 09:12 |
|
|
|
Опубликовано 04.10.2016 08:14 (8 лет назад) # |
---------------------------
biomorph.exe - Системная ошибка
---------------------------
Запуск программы невозможен, так как на компьютере отсутствует libgcc_s_dw2-1.dll. Попробуйте переустановить программу.
---------------------------
ОК
---------------------------
|
|
|
|
Опубликовано 04.10.2016 09:13 (8 лет назад) # |
Перезалил новую версию, скомпилированную в MSVC должно работать без либ. проверьте |
|
|