Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
3 / 3 / 1
Регистрация: 01.05.2017
Сообщений: 37

Некорректное отображение блока C++ OpenGL (Debian 9)

17.12.2017, 07:27. Показов 4121. Ответов 26

Студворк — интернет-сервис помощи студентам
Установлена библиотека libsfml-dev 2.4.1

Написал программу по первому примеру с видео на YouTube (Создание 3d игр на C++: Minecraft)

Стороны блока отображаются неправильно - те, что находятся дальше отрисовывются перед теми, что находятся ближе:


Исходный код:
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
#include <SFML/Graphics.hpp>
#include <SFML/OpenGL.hpp>
#include <iostream>
#include <GL/gl.h>
#include <GL/glu.h>
 
using namespace sf;
 
int main(){
    RenderWindow window(VideoMode(1280,900), "Mineisland");
 
    GLfloat xrot;
    GLfloat yrot;
    GLfloat zrot; 
 
    Texture t;
    t.loadFromFile("/home/denis/C++/MineIsland/resources/bg.jpg");
    Sprite bg(t);
 
    GLuint texture = 0;
    {
        Image image;
        image.loadFromFile("/home/denis/C++/MineIsland/resources/Blocks/dirt.jpg");
 
        glGenTextures(1, &texture);
        glBindTexture(GL_TEXTURE_2D, texture);
        gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA, image.getSize().x, image.getSize().y, GL_RGBA, GL_UNSIGNED_BYTE, image.getPixelsPtr());
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);
    }
 
    glEnable(GL_DEPTH_TEST);
    glDepthMask(GL_TRUE);
    glClearDepth(10.f);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(90.f, 1.f, 1.f, 500.f);
    glEnable(GL_TEXTURE_2D);
 
    Clock clock;
 
    while (window.isOpen())
    {
        Event event;
        while (window.pollEvent(event))
        {
            if (event.type == Event::Closed)
                window.close();
        }
        float time = clock.getElapsedTime().asSeconds() * 100;
        float size = 10.f;
 
        window.pushGLStates();
        window.draw(bg);
        window.popGLStates();
 
        glClear(GL_DEPTH_BUFFER_BIT);
 
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
        glTranslatef(0, 0, -40);
 
        glRotatef(xrot,1.0f,0.0f,0.0f);
                glRotatef(yrot,0.0f,1.0f,0.0f);
                glRotatef(zrot,0.0f,0.0f,1.0f);
 
        glBindTexture(GL_TEXTURE_2D, texture);
        glBegin(GL_QUADS);
 
            //back
            glTexCoord2f(0, 0); glVertex3f(-size, -size, -size);
            glTexCoord2f(1, 0); glVertex3f(size, -size, -size);
            glTexCoord2f(1, 1); glVertex3f(size, size, -size);
            glTexCoord2f(0, 1); glVertex3f(-size, size, -size);
 
            //front
            glTexCoord2f(0, 0); glVertex3f(size, -size, size);
            glTexCoord2f(1, 0); glVertex3f(-size, -size, size);
            glTexCoord2f(1, 1); glVertex3f(-size, size, size);
            glTexCoord2f(0, 1); glVertex3f(size, size, size);
 
            //left
            glTexCoord2f(0, 0); glVertex3f(-size, -size, size);
            glTexCoord2f(1, 0); glVertex3f(-size, -size, -size);
            glTexCoord2f(1, 1); glVertex3f(-size, size, -size);
            glTexCoord2f(0, 1); glVertex3f(-size, size, size);
 
            //right
            glTexCoord2f(0, 0); glVertex3f(size, -size, -size);
            glTexCoord2f(1, 0); glVertex3f(size, -size, size);
            glTexCoord2f(1, 1); glVertex3f(size, size, size);
            glTexCoord2f(0, 1); glVertex3f(size, size, -size);
 
            //bottom
            glTexCoord2f(0, 0); glVertex3f(-size, -size, size);
            glTexCoord2f(1, 0); glVertex3f(size, -size, size);
            glTexCoord2f(1, 1); glVertex3f(size, -size, -size);
            glTexCoord2f(0, 1); glVertex3f(-size, -size, -size);
 
            //top
            glTexCoord2f(0, 0); glVertex3f(-size, size, -size);
            glTexCoord2f(1, 0); glVertex3f(size, size, -size);
            glTexCoord2f(1, 1); glVertex3f(size, size, size);
            glTexCoord2f(0, 1); glVertex3f(-size, size, size);
 
        glEnd();
 
            xrot+=0.3f;
            yrot+=0.2f;
            zrot+=0.4f;
 
            window.display();
    }
 
    glDeleteTextures(1, &texture);
 
    return 0;
}
Для компиляции использую команды в терминале:
Bash
1
2
3
g++ -c /home/denis/C++/MineIsland/main.cpp
g++ main.o -o main -lsfml-graphics -lsfml-window -lsfml-system -lGLU -lGL
./main
Я много экспериментировал с изменением кода, пытался все переделать абсолютно по другому, но выходило всегда одно и то же.
Заранее спасибо за помощь
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.12.2017, 07:27
Ответы с готовыми решениями:

Некорректное отображение диалогового окна. Win32API, OpenGL
Добрый вечер. Я пытаюсь сделать так, чтобы по нажатии кнопки меню появлялось модальное диалоговое окно. На данном этапе, содержащее...

Некорректное отображения блока div
Здравствуйте всем. Делаю шаблон на joomla. Ну здесь только будет вопрос по css. Не могу понять почему при измерении линейкой mySize блока...

Змейка на OpenGL. Некорректное изначальное расположение змейки
Сначала змейка появляется в левом нижнем углу экрана, а потом уже телепортируется по координатам (6;6), которые указаны в main, вместо...

26
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
18.12.2017, 08:27
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
С чего бы? Установка цвета очистки задается glClearColor()
Покажу на практике, что я описал. Задаю цвет очистки тёмно-зелёный:
C++
1
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
Очищаю буфер глубины (буфер цвета не очищаю)
glClear(GL_DEPTH_BUFFER_BIT);
Вместо тёмно-зелёного фон закрашивается чёрным, игнорируя цвет заданный с помощью glClearColor:
C++
1
glClear(GL_DEPTH_BUFFER_BIT);
0
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
18.12.2017, 08:47
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Там они только изменяются, но не инициализируются. Но если повезло и начальное значение не слишком велико, будет работать нормально, ведь там не важно какой угол был в начале.
Это плохая практика надеяться на то что повезёт. Проблема в том, что из Visual Studio этот код не будет работать нормально. Точнее, он вообще не будет работать. VS просто отказывается запускать такую программу, где локальные переменные используются до их инициализации.

Добавлено через 16 минут
Ignatferum, вот здесь в документации есть пример типичной программы на SFML для OpenGL: https://www.sfml-dev.org/tutor... opengl.php

Есть правило, которое многие иногда забывают в том числе и я, что документация на первом месте.

Попробуйте добавить два параметра:

C++
1
RenderWindow window(VideoMode(1280, 900), "Mineisland", Style::Default, ContextSettings(32));
0
3 / 3 / 1
Регистрация: 01.05.2017
Сообщений: 37
18.12.2017, 10:41  [ТС]
Прошу прощения за мой косяк, программа, что вы мне сбросили с созданием шахматной доски прекрасно работает, просто я допустил ошибку в команде.
А добавление этих двух параметров ничего не изменило:
C++
1
RenderWindow window(VideoMode(1280, 900), "Mineisland", Style::Default, ContextSettings(32));
1
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
18.12.2017, 11:01
Лучший ответ Сообщение было отмечено Ignatferum как решение

Решение

Я перед тем как написать у себя проверял, у меня работает:



Попробуйте скопировать тот вариант, который я запускаю:

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
#include <SFML/Graphics.hpp>
#include <SFML/OpenGL.hpp>
#include <iostream>
#include <GL/gl.h>
#include <GL/glu.h>
 
using namespace sf;
 
int main()
{
    RenderWindow window(VideoMode(500, 500), "Mineisland", Style::Default, ContextSettings(32));
 
    GLfloat xrot = 0.0f;
    GLfloat yrot = 0.0f;
    GLfloat zrot = 0.0f;
 
    Texture t;
    t.loadFromFile("Textures/bg.jpg");
    Sprite bg(t);
 
    GLuint texture = 0;
    {
        Image image;
        image.loadFromFile("Textures/dirt.jpg");
 
        glGenTextures(1, &texture);
        glBindTexture(GL_TEXTURE_2D, texture);
        gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA, image.getSize().x, image.getSize().y, GL_RGBA, GL_UNSIGNED_BYTE, image.getPixelsPtr());
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);
    }
 
    glEnable(GL_DEPTH_TEST);
    glDepthMask(GL_TRUE);
    glClearDepth(10.f);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(90.f, 1.f, 1.f, 500.f);
    glEnable(GL_TEXTURE_2D);
 
    Clock clock;
 
    while (window.isOpen())
    {
        Event event;
        while (window.pollEvent(event))
        {
            if (event.type == Event::Closed)
                window.close();
        }
        float time = clock.getElapsedTime().asSeconds() * 100;
        float size = 10.f;
 
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
        window.pushGLStates();
        window.draw(bg);
        window.popGLStates();
 
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
        glTranslatef(0, 0, -40);
 
        glRotatef(xrot, 1.0f, 0.0f, 0.0f);
        glRotatef(yrot, 0.0f, 1.0f, 0.0f);
        glRotatef(zrot, 0.0f, 0.0f, 1.0f);
 
        glBindTexture(GL_TEXTURE_2D, texture);
        glBegin(GL_QUADS);
 
        //back
        glTexCoord2f(0, 0); glVertex3f(-size, -size, -size);
        glTexCoord2f(1, 0); glVertex3f(size, -size, -size);
        glTexCoord2f(1, 1); glVertex3f(size, size, -size);
        glTexCoord2f(0, 1); glVertex3f(-size, size, -size);
 
        //front
        glTexCoord2f(0, 0); glVertex3f(size, -size, size);
        glTexCoord2f(1, 0); glVertex3f(-size, -size, size);
        glTexCoord2f(1, 1); glVertex3f(-size, size, size);
        glTexCoord2f(0, 1); glVertex3f(size, size, size);
 
        //left
        glTexCoord2f(0, 0); glVertex3f(-size, -size, size);
        glTexCoord2f(1, 0); glVertex3f(-size, -size, -size);
        glTexCoord2f(1, 1); glVertex3f(-size, size, -size);
        glTexCoord2f(0, 1); glVertex3f(-size, size, size);
 
        ////right
        glTexCoord2f(0, 0); glVertex3f(size, -size, -size);
        glTexCoord2f(1, 0); glVertex3f(size, -size, size);
        glTexCoord2f(1, 1); glVertex3f(size, size, size);
        glTexCoord2f(0, 1); glVertex3f(size, size, -size);
 
        ////bottom
        glTexCoord2f(0, 0); glVertex3f(-size, -size, size);
        glTexCoord2f(1, 0); glVertex3f(size, -size, size);
        glTexCoord2f(1, 1); glVertex3f(size, -size, -size);
        glTexCoord2f(0, 1); glVertex3f(-size, -size, -size);
 
        ////top
        glTexCoord2f(0, 0); glVertex3f(-size, size, -size);
        glTexCoord2f(1, 0); glVertex3f(size, size, -size);
        glTexCoord2f(1, 1); glVertex3f(size, size, size);
        glTexCoord2f(0, 1); glVertex3f(-size, size, size);
 
        glEnd();
 
        xrot += 0.03f;
        yrot += 0.2f;
        zrot += 0.04f;
 
        window.display();
    }
 
    glDeleteTextures(1, &texture);
 
    return 0;
}
1
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
18.12.2017, 11:15
Давайте попробуем создать, как в документации Window, вместо RenderWindow и добавим window.setActive(true)
C++
1
2
    Window window(VideoMode(500, 500), "Mineisland", Style::Default, ContextSettings(32));
    window.setActive(true);
Я картинку с фоном временно закомментировал, потому что у Window нет такой команды.

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
#include <SFML/Graphics.hpp>
#include <SFML/OpenGL.hpp>
#include <iostream>
#include <GL/gl.h>
#include <GL/glu.h>
 
using namespace sf;
 
int main()
{
    Window window(VideoMode(500, 500), "Mineisland", Style::Default, ContextSettings(32));
    window.setActive(true);
 
    GLfloat xrot = 0.0f;
    GLfloat yrot = 0.0f;
    GLfloat zrot = 0.0f;
 
    Texture t;
    t.loadFromFile("Textures/bg.jpg");
    Sprite bg(t);
 
    GLuint texture = 0;
    {
        Image image;
        image.loadFromFile("Textures/dirt.jpg");
 
        glGenTextures(1, &texture);
        glBindTexture(GL_TEXTURE_2D, texture);
        gluBuild2DMipmaps(GL_TEXTURE_2D, GL_RGBA, image.getSize().x, image.getSize().y, GL_RGBA, GL_UNSIGNED_BYTE, image.getPixelsPtr());
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);
    }
 
    glEnable(GL_DEPTH_TEST);
    glDepthMask(GL_TRUE);
    glClearDepth(10.f);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective(90.f, 1.f, 1.f, 500.f);
    glEnable(GL_TEXTURE_2D);
 
    Clock clock;
 
    while (window.isOpen())
    {
        Event event;
        while (window.pollEvent(event))
        {
            if (event.type == Event::Closed)
                window.close();
        }
        float time = clock.getElapsedTime().asSeconds() * 100;
        float size = 10.f;
 
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
        //window.pushGLStates();
        //window.draw(bg);
        //window.popGLStates();
 
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
        glTranslatef(0, 0, -40);
 
        glRotatef(xrot, 1.0f, 0.0f, 0.0f);
        glRotatef(yrot, 0.0f, 1.0f, 0.0f);
        glRotatef(zrot, 0.0f, 0.0f, 1.0f);
 
        glBindTexture(GL_TEXTURE_2D, texture);
        glBegin(GL_QUADS);
 
        //back
        glTexCoord2f(0, 0); glVertex3f(-size, -size, -size);
        glTexCoord2f(1, 0); glVertex3f(size, -size, -size);
        glTexCoord2f(1, 1); glVertex3f(size, size, -size);
        glTexCoord2f(0, 1); glVertex3f(-size, size, -size);
 
        //front
        glTexCoord2f(0, 0); glVertex3f(size, -size, size);
        glTexCoord2f(1, 0); glVertex3f(-size, -size, size);
        glTexCoord2f(1, 1); glVertex3f(-size, size, size);
        glTexCoord2f(0, 1); glVertex3f(size, size, size);
 
        //left
        glTexCoord2f(0, 0); glVertex3f(-size, -size, size);
        glTexCoord2f(1, 0); glVertex3f(-size, -size, -size);
        glTexCoord2f(1, 1); glVertex3f(-size, size, -size);
        glTexCoord2f(0, 1); glVertex3f(-size, size, size);
 
        ////right
        glTexCoord2f(0, 0); glVertex3f(size, -size, -size);
        glTexCoord2f(1, 0); glVertex3f(size, -size, size);
        glTexCoord2f(1, 1); glVertex3f(size, size, size);
        glTexCoord2f(0, 1); glVertex3f(size, size, -size);
 
        ////bottom
        glTexCoord2f(0, 0); glVertex3f(-size, -size, size);
        glTexCoord2f(1, 0); glVertex3f(size, -size, size);
        glTexCoord2f(1, 1); glVertex3f(size, -size, -size);
        glTexCoord2f(0, 1); glVertex3f(-size, -size, -size);
 
        ////top
        glTexCoord2f(0, 0); glVertex3f(-size, size, -size);
        glTexCoord2f(1, 0); glVertex3f(size, size, -size);
        glTexCoord2f(1, 1); glVertex3f(size, size, size);
        glTexCoord2f(0, 1); glVertex3f(-size, size, size);
 
        glEnd();
 
        xrot += 0.03f;
        yrot += 0.2f;
        zrot += 0.04f;
 
        window.display();
    }
 
    glDeleteTextures(1, &texture);
 
    return 0;
}
1
3 / 3 / 1
Регистрация: 01.05.2017
Сообщений: 37
18.12.2017, 11:44  [ТС]
Да! Этот вариант прекрасно работает, но я не пойму никак, я же добавлял уже эти два параметра в RenderWindow, но заработало только после того, как я скопировал именно ваш код, а если снова убираю эти параметры, то куб снова не работает. Вообщем, спасибо большое! Убил кучу времени из-за одного простого кубика
1
9949 / 2950 / 497
Регистрация: 05.10.2013
Сообщений: 8,030
Записей в блоге: 242
18.12.2017, 12:04
Ignatferum, я очень рад! Я вам сделаю сегодня или завтра точно такой же пример на актуальном OpenGL 3. Может вам сейчас этот пример не нужен будет, потому что может быть вы настроены пока изучать decprecated/legacy OpenGL. Но скорее всего, потом вы поймёте насколько гибкий шейдерный OpenGL, что по нему быстрее помогают (большинство переключилось на шейдерный и забывают старый), много туториалов по шейдерному и вы найдёте свою тему и может вам это пример поможет. А мне польза в упражнении. Я не так давно начал серьёзно изучать шейдерный и от начинающего неделеко ушёл. Хочу сделать прямоугольник с фоном в ортогональной проекции с переключением на перспективную проекцию. GUI элементы тоже так выводят, поэтому это в любом случае будет полезно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.12.2017, 12:04

Некорректное отображение
Всем привет, помоги пожалуйста советом. У меня есть сайт http://www.mia-luce.ru/ , во всех браузерах все работает нормально, но когда...

Некорректное отображение
недавно я хотел скопировать текст и отправить сообщение, своего решения на форум текст был взят из среды разработки русские слова...

Некорректное отображение
Помогите, пожалуйста, с проблемой. Есть какой той каркас.Макет будет фиксированным. Я задаю контейнеру (там, где будет находиться весь...

Некорректное отображение баннера в браузерах
Подскажите, пожалуйста, как решить проблему. Баннер, состоящий из 4 частей, отображается на мониторе не горизонтально, как положено, а...

Некорректное отображение в ИЕ
Добрый день! Как исправить некорректное отображение в ИЕ сайта advokatlogika.ru


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал (мат мет мод 29)
anaschu 23.06.2026
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал Материалы для обсуждения с МГСУ · 2026 Рисунки внутри приложенного ворд файла. Что за. . .
28. Конкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
27. Планы на разработку функциональных требований к строительству внутри модели пищеблока (или не только его?)
anaschu 22.06.2026
Что уже реализовано и даёт конфликты «бесплатно» Самый простой конфликт уже работает — конфликт за ресурс-работника. Заданий больше, чем доступных поваров → очередь в queue1. Это прямое отражение. . .
26. мед мат модель.Какие типы конфликтов функциональных требований можно рассчитать через ДЕС-моделирование (СМО) в AnyLogic?
anaschu 22.06.2026
Что ДЕС/ СМО умеет считать напрямую: Конфликты за ресурсы (очереди, узкие места). Несколько типов агентов (повара, учителя, рабочие, пациенты) претендуют на один ресурс (лифт, вход, коридор,. . .
25 модель здравосохранения и функциональных требований к пищеблоку: конфликты функциональных требований.
anaschu 22.06.2026
Есть ли данные о том, какие функциональные/ эксплуатационные требования или их сочетания труднее всего учитывать при проектировании зданий? Да, такие данные есть, и они хорошо описаны и в российской,. . .
Remote Connection Manager
DevAlt 21.06.2026
Написал для себя небольшую прилагу: https:/ / github. com/ altbodhi/ ReConMan По итогу пришел к мысли, что DU не дружат с существующими технологиями. От сериализации до отображения в реляционную. . .
Администрация Хабра удаляет новые энрегоэфективные алгоритмы, которые не западной школы кода, и вовсе никак не сгенерировавны.
Hrethgir 20.06.2026
Делается это, как замечено, при правках - при объявлении концептуальных отличий в алгоримах. Делается это, по линейке событий - после дополнения публикации основными отличиями от основных западных. . .
Процесс ориентированная диалектика (не новость - просто системное обновление, философия).
Hrethgir 20.06.2026
Однажды один участник в своём блоге, на этом форуме, сделал запись "О языках замолвите слово". Понимая, что язык - важная вещь, я решил хорошо подумать, прежде чем сказать, и сказал то, что вы видите. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru