Соединить точки 3D Куба в BuilderC++15.12.2014, 01:31. Показов 4688. Ответов 29
Собственно такое задание: Создать 3D куб или любую другую фигуру без использование OpenGl + поворот фигуры за счет нажатия и удержание ЛКМ.
Задание выполнено , но вот отображаются только точки 3D Куба Помогите сделать отрисовку линий от точек таким образом чтоб был полноценный Куб Я пытался сделать что то но не получалось , рисовалось от всех точек к 1 координате вот код
0
|
|||||||||||
| 15.12.2014, 01:31 | |
|
Ответы с готовыми решениями:
29
Определить взаимное расположение точки и куба
Нужно соединить точки |
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
|
|
| 15.12.2014, 03:21 | |
|
А где ghj.h (может там описываются все непонятные переменные)?
И учти, что вряд ли достаточно будет просто нарисовать линии. Наверняка придется их преобразованием заниматься. Или я ошибаюсь?
1
|
|
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||||||||||||
| 15.12.2014, 10:08 | ||||||||||||||||
|
Значит делаешь примерно так : заводишть массив int Lines[12][2] в него пишешь номера точек линий.
точки при трансформации тоже в отдельный массив пихаешь, к примеру ТPoint Transformed[8]; Ну а при отрисовке
Вот кстати для примера отрисовка куба, только куб закрашенный и без задних стенок.
0
|
||||||||||||||||
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||||||
| 15.12.2014, 20:59 | |||||||||||
|
Значится там где задаешь координаты вершин куба добавляешь:
там где у тебя отрисовываются точки делаешь так:
добавь int Lines[12][2];
0
|
|||||||||||
| 15.12.2014, 21:46 [ТС] | |||||||
|
[C++ Error] ghj.cpp(112): E2108 Improper use of typedef 'TPoint'
0
|
|||||||
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||
| 16.12.2014, 00:06 | |||||||
![]()
0
|
|||||||
| 16.12.2014, 00:38 [ТС] | |||||||
|
как я понял , то Lines[12][2] - это массив линий, но вот как заполнить для другой стороны?
что-то не соображаю, я принцип понял как (: но вот никак не додуматься ( даже если вы все расписали) как всеж сделать для другой стороны =\
0
|
|||||||
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
|
||||||
| 16.12.2014, 01:30 | ||||||
Сообщение было отмечено Nyiann как решение
Решение
Можно рисовать линии сразу в твоей функции draw().
Дополнительных преобразований не требуется. При желании рисуй "шарики в углах" после линий, чтобы линии поверх "шариков" не отображались (т.е. убираешь строку 30 и вставляешь ее после всех MoveTo и LineTo, не забывая про цикл от 0 до 7 включительно, заменив a и b на x[i] и y[i] соответственно).
1
|
||||||
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 16.12.2014, 02:40 | ||
|
0
|
||
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
|
|
| 16.12.2014, 03:34 | |
|
Какое задание (программа) - такой ответ.
К тому же Lines твои он пока не понимает. Я не претендую, чтобы мой код повесили в рамочку и молились на него перед сном. Человек получает то, что желает. Вариант решения лучше придумать не смог.
0
|
|
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
|
|||||||||||
| 16.12.2014, 16:27 | |||||||||||
|
Улучшил код отрисовки линий.
0
|
|||||||||||
| 16.12.2014, 16:39 | |
|
Не по теме: gunslinger, тут прям напрашивается теперь задействовать MouseDown. Один шаг до три де редактора.
0
|
|
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||
| 16.12.2014, 17:24 | ||||||
|
тогда уже вот так:
0
|
||||||
|
|
|
| 16.12.2014, 22:14 | |
|
Fulcrum_013, ты бы уже как-нибудь обозначил принцип отвязки от топологии, а-то страшно уже всем от обилия заумных слов.
![]() Прослойка из множества связей пар точек между расчетной и выводящей частями алгоритма? Или, может, есть что-то поинтересней на уме?
0
|
|
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 17.12.2014, 01:38 | ||
|
0
|
||
|
|
|
| 17.12.2014, 19:38 | |
|
В моем варианте веер треугольников не подразумевается изначально и просматриваться не должен в принципе. Множество треугольников, разделяющих вершину - это уже спецификация формы, которую надо знать на этапе отображения. Множество пар точек как раз не ограничивает нас никакой конкретной формой и может задавать любой произвольный объект.
Я это все просто к тому, что критиковать надо так, чтобы тебя понимали. А-то говнокодом ругнулся и зашифровался за топологией. Нехорошо.
0
|
|
|
2083 / 1574 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||||
| 18.12.2014, 08:58 | |||||||||
Добавлено через 15 минут
1
|
|||||||||
|
place status here
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,013
|
|||||||||||
| 18.12.2014, 15:43 | |||||||||||
|
Изменил программу: при удержании ЛКМ фигура вращается (раньше при клике любой кнопкой мыши), по колесику мыши изменяется масштаб (вверх - больше, вниз - меньше), по ПКМ двигаются "угловые точки" (нужно кликнуть по точке и двигать мышь), пока правая кнопка мыши зажата.
Есть лишь одна проблема - "сдвинутые углы" при вращении отображаются (координаты пересчитываются) неверно. См. строки 32-36 в cpp. cpp:
2
|
|||||||||||
| 18.12.2014, 15:43 | |
|
Помогаю со студенческими работами здесь
20
Как соединить точки линией? Соединить точки на плоскости. QPaint Соединить точки плавной кривой Как соединить 2 точки доступа Wi-Fi? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|