Форум программистов, компьютерный форум, киберфорум
Наши страницы
Бета-тестирование
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
8Observer8
2490 / 1594 / 274
Регистрация: 05.10.2013
Сообщений: 4,957
Записей в блоге: 77
1

Кубик Рубика

25.10.2017, 16:56. Просмотров 1164. Ответов 47
Метки нет (Все метки)

Здравствуйте,

Попробуйте запустить и немного потестить. Напишите, если что-то не так.

Управление:
  • Зажатая правая кнопка мыши - поворот камеру вокруг кубика
  • Зажатая левая кнопка мыши - поворот грани кубика
  • Колёсико мыши - отдаление и приближение камеры
  • Escape - закрыть приложение

Пробовал запускать на Windows XP, 32bit - работает.

Использовал инструменты:
  • 3D редактор Blender - для создания кубика
  • C# + Visual Studio 2015
  • Игровой 3D движок Unity
3
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.10.2017, 16:56
Ответы с готовыми решениями:

Кубик Рубика
Здравствуйте подскажите пожалуйста , хочу попробовать сделать кубика Рубика , пока стоит задача ->...

Кубик Рубика
Задача такая,из любой позиции собрать кубик Рубика за минимальное число ходов(вывести алгоритм...

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

Кубик-Рубика
добрый вечер, форумчане) мне необходимо написать программу кубика-рубика. руководитель посоветовала...

Кубик Рубика
Здравствуйте)помогите пожалуйста если не трудно)) Изобразить на экране ЭВМ следующий рисунок

47
8Observer8
2490 / 1594 / 274
Регистрация: 05.10.2013
Сообщений: 4,957
Записей в блоге: 77
28.10.2017, 10:11  [ТС] 21
Я тоже попробовал снеговиков из Linux на виртуалке, такая же ерунда. Может проблема в видео памяти. У меня выставлено 16 МБайт. Ещё, по-моему, не используется видео-карта. Я пробовал в BIOS'е активировать, но у меня такой опции почему-то нет, или на называется по-другому, нетак как в инете показывают. На невиртуальном Linux'е должно нормально работать. Попробовал бы кто-нибудь. Не все же на Windows сидят. На "Mac X OS" бы попробовали. Mac же должен популярность набирать в России. На Западе же Mac очень сильно распространён, как рабочая лошадка.

Добавлено через 4 минуты
Я просто думал, что проблема с тормозами в 3D, как-то с Unity связана. А если уж простая сцена (с малым количеством вертексов) на three.js тормозит, которая и на планшетах и смартфонах должна не лагать, то значит, проблема в другом.

Добавлено через 1 минуту
Case-Man, зато я узнал, что такие проблемы есть. Спасибо большое за тест и информацию.
0
8Observer8
2490 / 1594 / 274
Регистрация: 05.10.2013
Сообщений: 4,957
Записей в блоге: 77
03.11.2017, 07:39  [ТС] 22
Цитата Сообщение от infobos Посмотреть сообщение
Я бы все таки Вам 8Observer8, советовал бы пройти мой путь развития в разработке трехмерной графики.
На голом WinAPI с++ OpenGL написать кубик рубик и другие игры.
Необходимо каждый чих-пых прописать в коде и не используя ничего кроме первого низкого кода на С++ и WinAPI.
WinAPI я хорошо знаю, так как пока работал в КБЭП, то 4 года писал программы с GUI на WinAPI для приёма данных с микроконтроллеров, обработку и вывод обработанных данных на экран или в файл для последующей обработки другими программами. Писал так же на Ассемблере для микроконтроллеров и для себя на Ассеблере MASM + OllyDBG. Изучал уроки Iczelion'а по MASM и WinAPI. Немного изучал крэкинг. Поэтому низкоуровневое программирование я знаю достаточно хорошо для понимания работы процессора компьютера и ОС (на уровне системных вызовов Windows, то есть WinAPI)

Цитата Сообщение от infobos Посмотреть сообщение
На голом WinAPI с++ OpenGL написать кубик рубик и другие игры.
Для игр WinAPI нужен на очень минимальном уровне: для создания окна и для обработки ввода/вывода от пользователя. Для 3D редактора, конечно, лучше WinAPI, так как он нужен для создания: чекбоксов, радиокнопок, выпадающих списков, обычных кнопок, меню, контекстное меню, тектовые поля вывода и т.д. Но я бы лучше взял OpenGL + WPF/C#. Делать GUI на WPF приятней, а OpenGL-контрол можно сделать с помощью OpenTK

Я бы вам рекомендовал забыть про старый OpenGL, который использовали с начала 90-x, то есть c glBegin/glEnd, потому что он ничего не имеет общего с актуальным OpenGL 3.3. Старые функции полностью вырезали из OpenGL 3.0 Core, то есть glBegin, в 3.0 Core вообще не доступен.

Цитата Сообщение от infobos Посмотреть сообщение
Скорость вращения кубика по быстрее, если оно быстрое тогда привязать скорость вращения к таймеру(реальному времени, а не скорости процессора)
Сделать побыстрее? У меня к таймеру привязан, а не к скорости работы процессора. Сделаю, чтобы в настройках можно было бы регулировать.

Цитата Сообщение от infobos Посмотреть сообщение
Считаю, что на Unity3D многое осталось за кадром из вашего взора.
Я изучаю шейдерный OpenGL, потому что он мне и в Unity пригодится. Я его отдельно изучаю с сочетанием с WinAPI, чтобы понимать, как Unity работает под капотом.

Цитата Сообщение от infobos Посмотреть сообщение
Считаю, что я сделал огромный прыжок в трехмерных вычислениях.
Вам ещё предстоит изучать шейдерный OpenGL 3.3. Там огромная спецификация, много страниц.

Цитата Сообщение от infobos Посмотреть сообщение
P.S. Я конечно разочаровался в том, что Вы не повторили мой алгоритм вращения всего кубика, хотя бы частично. А это нужно сделать через матричные преобразования (накопления поворота) и тому подобное.
А мне наоборот показалось, что мой алгоритм поворота удобнее вашего, потому что, чтобы быстро развернуть кубик на 180 градусов, у вас он заваливается, а у меня нет, потому что крутится вокруг глобальной оси, а не локальной.

Добавлено через 26 минут
Цитата Сообщение от infobos Посмотреть сообщение
Исходные коды библиотек нет в свободном доступе, авторы не выкладывают их на всеобщее обозрение.
Ну почему же, многие для многих библиотек исходники в свободном доступе. Например, для загрузки файлов форматов PNG, BMP, JPEG, TIFF часто используют FreeImage. Кстати, как вы собираетесь загружать файлы PNG, JPEG и TIFF? Разбираться в спецификациях этих файлов и писать свои парсеры для каждого формата? Это очень долго, хотя, скорее всего познавательно. У меня нет столько времени, я лучше возьму FreeImage.

Цитата Сообщение от infobos Посмотреть сообщение
Также меня беспокоит то, что библиотеки со временем устаревают и появляются сбои в работе приложений.
Есть ли примеры таких библиотек?

Цитата Сообщение от infobos Посмотреть сообщение
Мне нисколько не страшны коды в несколько 10000 строк. Мои проекты переваливают за 10000 строк кода.
Я бы придпочёл готовое решение типа Unity, так как его код протестирован многими программистами по всему Миру. Большое количество программистов его используют. Я могу легко найти работу или подработку на Unity. Теперь что касается вашего движка. Допустим, я вместо Unity решу использовать ваш движок. Где гарантия, что вы не забросите проект? А где гарантия, что вы будете исправлять баги? Мне придётся досканально знать весь исходный код вашего движка. А вдруг вы пригласите в команду других программистов и они будут вносить свои изменения и я должен буду следить за этими изменениями. А вдруг вы решите сделать исходники своего движка закрытыми и тогда я останусь с носом. Если я буду писать свой движок с нуля, но представляете сколько времени мне нужно будет, чтобы начать на нём зарабатывать в отличае он Unity. На upwork.com/freelancer.com полно подработок и вакансий по Unity.

Цитата Сообщение от infobos Посмотреть сообщение
В Unity3D я бы с большим трудом смог сделать 3D редактор. Так как пришлось бы полностью существующий движок Unity3D переписывать под свои нужды. Не спорю там можно кое что сделать, но только то, что уже было сделано и повторить с другими параметрами. Свои условия нужно создавать с нуля (например 3D редактор).
Это неверно. Исходники у него закрытые и дорого стоят. Даже если вы их купите, то смысла нет их переписывать, так как в движке уже всё есть, тем более для вашей задачи. Движок просто предоставляет огромный набор API, как WinAPI. Можно было назвать UnityAPI. Какие могут быть условия, что Unity не справится? Сформулируйте, пожалуйста, такое условие.
1
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
03.11.2017, 14:39 23
Цитата Сообщение от 8Observer8 Посмотреть сообщение
WinAPI я хорошо знаю, так как пока работал в КБЭП, то 4 года писал программы с GUI на WinAPI для приёма данных с микроконтроллеров, обработку и вывод обработанных данных на экран или в файл для последующей обработки другими программами. Писал так же на Ассемблере для микроконтроллеров и для себя на Ассеблере MASM + OllyDBG. Изучал уроки Iczelion'а по MASM и WinAPI. Немного изучал крэкинг. Поэтому низкоуровневое программирование я знаю достаточно хорошо для понимания работы процессора компьютера и ОС (на уровне системных вызовов Windows, то есть WinAPI)
Сейчас встал вопрос обертки компонентов как в делфи7 на WinAPI. Есть наработки в этом плане? Нужны готовые открытые коды на WinAPI с выводом и упарвлением таких компонентов как Edit, label, RichEdit, TreeView, ComboBox, PageControl. Написанные для с++ и без плагинов и помощников подключаемых библиотек. Лучше вообще готовые проекты с выводом этих компонентов для visual studio win32.

Добавлено через 8 минут
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Ну почему же, многие для многих библиотек исходники в свободном доступе. Например, для загрузки файлов форматов PNG, BMP, JPEG, TIFF часто используют FreeImage. Кстати, как вы собираетесь загружать файлы PNG, JPEG и TIFF? Разбираться в спецификациях этих файлов и писать свои парсеры для каждого формата?
Я не думал сам писать парсеры, мне нужно было получить исходный готовый код парсеров - которых нет в свободном доступе.
Я же говорю написаны библиотеки, а в них парсеры. А у этих парсеров где открытый код?
Кстати переходил по ссылкам не увидел там открытого кода. Ссылки на самые коды не работают.

Добавлено через 13 минут
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Есть ли примеры таких библиотек?
Например GLUT и подключаемые динамические библиотеки DLL. Зачем мне следить за новыми версиями библиотек. Не проще ли открытую библиотеку у себя открытым кодом иметь. Некоторые библиотеки например служат прослойкой. Например мне незачем иметь лишнюю прослойку в проекте.
Я не говорю о библиотеках как об интерфейсах работы с аппаратурой или операционкой. От них не возможно отказаться.
Но некоторые библиотеки явно являются коммерческой прослойкой и эти библиотеки имеют внутри свои методы и подключаемые библиотеки, которые могут устареть. Как например, Вы говорите, что glBegin/glEnd не будут работать в некоторых местах.
0
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
03.11.2017, 15:12 24
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Это неверно. Исходники у него закрытые и дорого стоят. Даже если вы их купите, то смысла нет их переписывать, так как в движке уже всё есть, тем более для вашей задачи. Движок просто предоставляет огромный набор API, как WinAPI. Можно было назвать UnityAPI. Какие могут быть условия, что Unity не справится? Сформулируйте, пожалуйста, такое условие.
Задачи, которые пришлось использовать:

1. Подгон углов у примыкающих стен, корректировка длины стен, расчет расстояния между измененными угловыми сцепками и т.д.
2. При приближении элемента к другому элементу идет магнитная привязка по высоте, по горизонту, по углам и тому подобное.
3. В каждую стену внедряется дверь, окно и отверстие. Эти элементы должны двигаться относительно стен и строго по плоскости стены. А стены могут быть под разными углами.
4. При внедрении дверей и окон полигон стены меняется разбивается на отдельные куски полигонов, чтобы показать что окно и дверь углубляются в стене. А отверстие реально просматривается всквозь стену.
5. Редактирование объектов по стрелочкам управления. И еще много чего рассчитывается просто описывать здесь это не реально.

Подобные расчеты съедают большое количество ресурсов процессора. То есть много затрачивается время на различные расчеты. И если учитывать все детали, то это не реально много расчетов, что приходится оставлять то что реально нужно, а не все подряд. И упрощать процессы. Это я еще не говорю о том, что какой-нибудь процесс можно выполнять в конце передвижения. Нюансов много.

Если бы кто-то захотел бы сделать 3D движок со всеми вкусняшками, которые я напридумывал, и еще бы плюсом насочиняли лишнего, то уверен почти на 100%, что ему пришлось бы ставить тумблер включения на каждую вкусняшку. Иначе это все будет жутко тормозить.

Я уже не говорю о сложных алгоритмах расчета типа 3D модель минусует пространство другого. Расчет триангуляции. Эти расчеты съедают большое количество ресурсов и многое не нужно будет, что насочиняли бы производители Unity 3D. Этот движок бы сильно тормозил! Тут нужен точечный подход. А точечный подход угадывать долго. И потом объяснить клиенту все флаги(вкл/выкл) придется долго.
0
Миниатюры
Кубик Рубика  
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
03.11.2017, 15:49 25
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Я бы придпочёл готовое решение типа Unity, так как его код протестирован многими программистами по всему Миру. Большое количество программистов его используют. Я могу легко найти работу или подработку на Unity. Теперь что касается вашего движка. Допустим, я вместо Unity решу использовать ваш движок. Где гарантия, что вы не забросите проект? А где гарантия, что вы будете исправлять баги? Мне придётся досканально знать весь исходный код вашего движка. А вдруг вы пригласите в команду других программистов и они будут вносить свои изменения и я должен буду следить за этими изменениями. А вдруг вы решите сделать исходники своего движка закрытыми и тогда я останусь с носом. Если я буду писать свой движок с нуля, но представляете сколько времени мне нужно будет, чтобы начать на нём зарабатывать в отличае он Unity. На upwork.com/freelancer.com полно подработок и вакансий по Unity.
По сему родилась еще одна цитата.

Считаю, что программисты очень сильно отличаются между собой по тому с каким объемом они работают.
Программист копающийся в маленьких проектах не увидит проблем возникающих в больших проектах.
Взгляды и точка зрения не совпадают.

Я может быть кайф ловлю от всей этой заварухи... Расчет каждого полигона, подгонка углов и тому подобное. Я не считаю, что я потратил жутко много времени. Может на движок я потратил уже 2 месяца с перерывами. И почти его закончил. Остались еще детали и терки по мелочам. Обновления и дополнительные функции.
0
8Observer8
2490 / 1594 / 274
Регистрация: 05.10.2013
Сообщений: 4,957
Записей в блоге: 77
03.11.2017, 17:34  [ТС] 26
Цитата Сообщение от infobos Посмотреть сообщение
Сейчас встал вопрос обертки компонентов как в делфи7 на WinAPI. Есть наработки в этом плане?
Я не делал обёрток над WinAPI. Использовал напрямую. Это были мелкие технические программы для внутренних нужд для испытаний разрабатываемых изделий. WinAPI нужен был только для вывода простейшего GUI и для подключения к COM-порту. Основой код для заказчика наш отдел писал на ассемблере и Си для микроконтроллеров семейства C167. До этого я курсовые писал на Builder. После WinAPI изучал немного Qt, потом перешёл на .NET, то есть на C#, WinForms, WPF. Для OpenGL использование WinAPI - минимально. Написать свою GUI-обёртку GUI на чистом WinAPI с минимальным количеством - это долгая и сложная задача. Если вы посмотрите по вакансиям по более или менее крупным городам, то увидите, что фирм, которые требуют специалистов в WinAPI для собственных GUI-обёрток очень мало по сравнению с Qt, Java и .NET. Очень тяжело сейчас найти специалистов, кто до сих пор сидят только на WinAPI. Большинство переметнулось туда, где больше спрос, где проще найти вакансию для постоянки или заказы.

Цитата Сообщение от infobos Посмотреть сообщение
Я не думал сам писать парсеры, мне нужно было получить исходный готовый код парсеров - которых нет в свободном доступе.
Я же говорю написаны библиотеки, а в них парсеры. А у этих парсеров где открытый код?
Кстати переходил по ссылкам не увидел там открытого кода. Ссылки на самые коды не работают.
Вы не внимательно посмотрели. Я на скриншотах покажу на что обратить внимание. И так, вы перешли по ссылке FreeImage. Теперь скриншоты, где важное я обвёл и подчеркнул.
0
Миниатюры
Кубик Рубика   Кубик Рубика  
8Observer8
2490 / 1594 / 274
Регистрация: 05.10.2013
Сообщений: 4,957
Записей в блоге: 77
03.11.2017, 18:32  [ТС] 27
Цитата Сообщение от infobos Посмотреть сообщение
Задачи, которые пришлось использовать:
1. Подгон углов у примыкающих стен, корректировка длины стен, расчет расстояния между измененными угловыми сцепками и т.д.
2. При приближении элемента к другому элементу идет магнитная привязка по высоте, по горизонту, по углам и тому подобное.
3. В каждую стену внедряется дверь, окно и отверстие. Эти элементы должны двигаться относительно стен и строго по плоскости стены. А стены могут быть под разными углами.
4. При внедрении дверей и окон полигон стены меняется разбивается на отдельные куски полигонов, чтобы показать что окно и дверь углубляются в стене. А отверстие реально просматривается всквозь стену.
5. Редактирование объектов по стрелочкам управления. И еще много чего рассчитывается просто описывать здесь это не реально.
Я думаю, для Unity это не очень сложная задача. Я уверен, что судя по количеству и качеству инди-игр на Unity для мобильных платформ - всё что вы описали это мелочи. Как раз движок позволяет сконцентрироваться на решении задач проекта, а не на технических деталях. Сейчас люди избалованы красивой графикой и VR'ом. Если их подсунуть графику 90-x, то многие ужаснутся. Unity по-умолчанию идёт со стандартными шейдерами, которые обеспечивают более или менее достойную графику. Он заточен под мобильные платформы, которые ограничены по выч. ресурсам в отличие от стационарных ПК. Движок перешёл на VR, который становится стандартом не только в играх. Пока вы дойдёте своими силами до VR время будет упущено. Одно дело писать инструмент, на котором потом будешь делать продукты, а другое взять готовый инструмент оптимизированный под мобильные устройства и который ориентирован на большие 3D проекты вроде игр. Мобильный рынок очень большой. Много времени у вас уйдёт, чтобы портировать свой движок на Android, iOS и VR. А может с другой стороны у вас получится всё это сделать, может подольше, чем на готовом движке. Я хочу разбить свой проект с Кубиком-Pубика на модули, чтобы покрыть модульными тестами, чтобы исключить ошибки, или легко добавить тесты выявляющие ошибки, чтобы предотвратить дальнейшее появление ошибок.

Добавлено через 24 минуты
Цитата Сообщение от infobos Посмотреть сообщение
Например GLUT и подключаемые динамические библиотеки DLL. Зачем мне следить за новыми версиями библиотек. Не проще ли открытую библиотеку у себя открытым кодом иметь. Некоторые библиотеки например служат прослойкой. Например мне незачем иметь лишнюю прослойку в проекте.
Я не говорю о библиотеках как об интерфейсах работы с аппаратурой или операционкой. От них не возможно отказаться.
Но некоторые библиотеки явно являются коммерческой прослойкой и эти библиотеки имеют внутри свои методы и подключаемые библиотеки, которые могут устареть. Как например, Вы говорите, что glBegin/glEnd не будут работать в некоторых местах.
glBegin/glEnd вырезан из OpenGL 3.0 Core. Его оставили в OpenGL 3.0 Compatibility. Всё что не в Core считается legacy/depricated. Но обратная совместимость же будет всегда. Просто большинство использует актуальный OpenGL. Очень сложно найти людей на старом OpenGL, сложно найти вакансии/заказы, сложно получить ответы на форумах. А на Android вообще нет glBegin/glEnd на всех версиях OpenGL ES. Поэтому выгодно прокачивать актуальный OpenGL. Самый последнюю версию 4.6 нет смысла брать, а вот 3.3 - самое то.

Хорошо, давайте возьмём для примера GLUT. Вы написали
Также меня беспокоит то, что библиотеки со временем устаревают и появляются сбои в работе приложений.
Допустим, GLUT устарел, но это случилось давно и на его смену пришёл FreeGLUT с открытым исходным кодом. Это же простые библиотеки: создают окно и ввод/вывод от пользователя обрабатывают. Какие там могут быть сбои. Тем более, есть другие альтернативы, которые легко освоить и использовать: SDL2 и GLFW. Ну у них нет GUI. Поэтому в вашей ситауции либо WinAPI, либо какой-то GUI фраймворк на C++. Я думал, у вас будет какой-нибудь пример библиотеки, например, вы захотели загрузить PNG или JPEG с помощью FreeImage или SOIL и написали бы, что обнаружились такие-то сбои в работе приложения.
0
Usaga
Эксперт .NET
5285 / 3590 / 627
Регистрация: 21.01.2016
Сообщений: 14,307
Завершенные тесты: 2
04.11.2017, 05:43 28
Цитата Сообщение от infobos Посмотреть сообщение
Сейчас встал вопрос обертки компонентов как в делфи7 на WinAPI. Есть наработки в этом плане? Нужны готовые открытые коды на WinAPI с выводом и упарвлением таких компонентов как Edit, label, RichEdit, TreeView, ComboBox, PageControl. Написанные для с++ и без плагинов и помощников подключаемых библиотек. Лучше вообще готовые проекты с выводом этих компонентов для visual studio win32.
В WinAPI такие контролы есть с самого рождения. На MSDN можно посмотреть полный список и примеры использования. Без сторонних библиотек и малейших намёков на удобство использования, всё как вы любите.
0
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
04.11.2017, 06:37 29
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Вы не внимательно посмотрели. Я на скриншотах покажу на что обратить внимание. И так, вы перешли по ссылке FreeImage. Теперь скриншоты, где важное я обвёл и подчеркнул.
Скачал посмотрел, но не нашел открытых кодов. Там почти во всех файлах с++ присутствует: #include "FreeImage.h"
А в нем #define DLL_API __declspec(dllimport). так что нет там открытых кодов. Нахожу постоянно только примеры как пользоваться этой библиотекой.

Добавлено через 4 минуты
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Я думал, у вас будет какой-нибудь пример библиотеки, например, вы захотели загрузить PNG или JPEG с помощью FreeImage или SOIL и написали бы, что обнаружились такие-то сбои в работе приложения
Я кстати на днях начал тестировать создание собственных библиотек. Можно так поднасрать внутри кода... Например, поставить if (date<2018) и библиотека не будет работать на ПК с установкой 2018 года. Можно понатыкать кучу ссылок на чужие библиотеки (или на DLL внутри ОС Windows) внутри этих самых библиотек.
0
Pro_grammer
Модератор
6176 / 2259 / 443
Регистрация: 24.04.2011
Сообщений: 3,998
Записей в блоге: 10
04.11.2017, 06:48 30
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Например, для загрузки файлов форматов PNG, BMP, JPEG, TIFF часто используют FreeImage.
А зачем использовать сторонние библиотеки, если в WIN системе уже есть GDI+ которая делает не только элементарную загрузку-конвертирование в различные форматы - сохранение изображений, но и многие другие интересные вещи.
2
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
04.11.2017, 07:02 31
Цитата Сообщение от Pro_grammer Посмотреть сообщение
А зачем использовать сторонние библиотеки, если в WIN системе уже есть GDI+ которая делает не только элементарную загрузку-конвертирование в различные форматы - сохранение изображений, но и многие другие интересные вещи.
Можете направить на путь истинный, какие названия этих функций, какие страницы? Интересует конвертирование jpg в bmp. то есть какой-нибудь легкий растровый файл в формат BMP.
0
8Observer8
2490 / 1594 / 274
Регистрация: 05.10.2013
Сообщений: 4,957
Записей в блоге: 77
04.11.2017, 07:25  [ТС] 32
Цитата Сообщение от infobos Посмотреть сообщение
Скачал посмотрел, но не нашел открытых кодов. Там почти во всех файлах с++ присутствует: #include "FreeImage.h"
А в нем #define DLL_API __declspec(dllimport). так что нет там открытых кодов. Нахожу постоянно только примеры как пользоваться этой библиотекой.
Может вы открыли папку Examples? Все исходники, то есть .h и соотвествующие им файлы .cpp лежат в папке Source.

В папке с распакованным архивом "FreeImage3170.zip" есть файлы решений (.sln) для трёх версий Visual Studio: 2005, 2008, 2013
Кубик Рубика


Все исходники хранятся в папке Source:
Кубик Рубика


Напимер, заголовочный файл FreeImage.h лежит здесь:
Кубик Рубика


А соответсвующий ему файл .cpp лежит здесь:
Кубик Рубика
1
Usaga
Эксперт .NET
5285 / 3590 / 627
Регистрация: 21.01.2016
Сообщений: 14,307
Завершенные тесты: 2
04.11.2017, 07:26 33
Цитата Сообщение от infobos Посмотреть сообщение
Можете направить на путь истинный, какие названия этих функций, какие страницы?
Напрявление всё туда же: в MSDN.

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от infobos Посмотреть сообщение
Можете направить на путь истинный, какие названия этих функций, какие страницы?
Вы принципиально не гуглите неизвестные вам вещи?

0
8Observer8
2490 / 1594 / 274
Регистрация: 05.10.2013
Сообщений: 4,957
Записей в блоге: 77
04.11.2017, 07:37  [ТС] 34
Например, вам нужны исходники для загрузки PNG-файлов. Эти исходники лежат в папке "LibPNG":
Кубик Рубика


Вот все исходники по загрузки PNG-файлов:
Кубик Рубика
1
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
04.11.2017, 07:42 35
8Observer8, Я оказывается не тот файл скачал. Да нашел! Супер! Прибавить отзыв не смог так как блокируют из-за того, что я должен оставить кому-нибудь другому. Позже подумаю, что можно с этим делать.
1
8Observer8
2490 / 1594 / 274
Регистрация: 05.10.2013
Сообщений: 4,957
Записей в блоге: 77
04.11.2017, 08:06  [ТС] 36
Цитата Сообщение от Usaga Посмотреть сообщение
В WinAPI такие контролы есть с самого рождения. На MSDN можно посмотреть полный список и примеры использования. Без сторонних библиотек и малейших намёков на удобство использования, всё как вы любите.
Такие контролы он уже умеет использовать. Он поэтому взялся за WinAPI, потому что там можно создавать: кнопки, чекбоксы, выпадающие списки, меню и т.д. На его скриншотах видны эти GUI-контролы. Он хочет написать свою библиотеку-обёртку типа MFC или QtGUI, чтобы сделать использование этих низкоуровневых GUI-контролов удобным.

Добавлено через 18 минут
Цитата Сообщение от Pro_grammer Посмотреть сообщение
А зачем использовать сторонние библиотеки, если в WIN системе уже есть GDI+ которая делает не только элементарную загрузку-конвертирование в различные форматы - сохранение изображений, но и многие другие интересные вещи.
Я не знал, что такая возможность есть, спасибо!
1
Pro_grammer
Модератор
6176 / 2259 / 443
Регистрация: 24.04.2011
Сообщений: 3,998
Записей в блоге: 10
04.11.2017, 10:19 37
Цитата Сообщение от infobos Посмотреть сообщение
Можете направить на путь истинный, какие названия этих функций
Загрузка любого файла гуглите по GdipCreateBitmapFromFile
Сохранить в любом другом формате GdipSaveImageToFile
Если интересно, то вот демопрограмма с исходным кодом на PB.
Оцените размер - всего 77Кб но работает с семью распространёнными форматами файлов без дополнительных библиотек.
1
Вложения
Тип файла: zip ConvertIMG.zip (40.4 Кб, 6 просмотров)
Usaga
Эксперт .NET
5285 / 3590 / 627
Регистрация: 21.01.2016
Сообщений: 14,307
Завершенные тесты: 2
04.11.2017, 10:26 38
Цитата Сообщение от 8Observer8 Посмотреть сообщение
Он хочет написать свою библиотеку-обёртку типа MFC или QtGUI, чтобы сделать использование этих низкоуровневых GUI-контролов удобным.
А почему нельзя взять готовую библиотеку? Или собирается написать лучше?
0
8Observer8
2490 / 1594 / 274
Регистрация: 05.10.2013
Сообщений: 4,957
Записей в блоге: 77
04.11.2017, 14:00  [ТС] 39
Цитата Сообщение от Usaga Посмотреть сообщение
А почему нельзя взять готовую библиотеку? Или собирается написать лучше?
Это опять холивар на тему: писать своё или взять готовое. Во всём есть свои плюсы и минусы. Если infobos хорошо знает, как сделать GUI на WinAPI, то почему бы ему, то что он использует, не обернуть в свои классы? Свою иерахию классов можно сделать, создать свою DLL для GUI и просто копировать эту DLL и её заголовки из проекта в проект. А по мере необходимости добавлять, то что нужно в эту библиотеку. Он просто хочет найти спеца, кто уже писал такие удобные в использовании и расширяемые GUI-обёртки над WinAPI и заплатить за работу. Кстати, платит он очень щедро, если работа сделана качественно.

Добавлено через 6 минут
Про Кубик Рубик я не забыл. Начал делать сначала с покрытием модульных тестов. Пишу техническое задание и сразу оформляю его в виде модульных тестов. Должен получиться проект без багов или с возможностью быстро фиксировать баги в тестах, чтобы исключить их повторное появление. Я тренируюсь писать ТЗ с фиксированием его в модульных тестах на фреймворке NUnit в Unity. Постараюсь сделать побыстрее.
0
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
04.11.2017, 16:08 40
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Если интересно, то вот демопрограмма с исходным кодом на PB.
А что за код? Какая среда его компилирует?
0
04.11.2017, 16:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.11.2017, 16:08

Игра 'Кубик Рубика'
Ребят мне очень нужна ваша помощь. Помогите создать игру кубик рубик. Но без 3D модели. Никак не...

Кубик Рубика на С++ и OpenGL
Здравствуйте, я начал изучать С++ и мне дали задание сделать кубик рубика на С++ и OpenGL, до этого...

Кубик рубика в Паскале
Изобразить в графическом модуле паскаля Кубик рубика, с разноцветными квадратиками


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

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

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