Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 21.01.2015
Сообщений: 85

Можно ли отрисовать на 3D сцене ребра 3D объекта?

12.02.2018, 17:48. Показов 1829. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как отобразить ребра 3D объекта, например куба. В WPF отрисовка происходит с помощью примитива - треугольника и только так. Как мне сделать так, чтобы можно было убирать текстуры с объекта, при том были видны его ребра?

Добавлено через 6 часов 47 минут
Возможно ли вообще такое?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.02.2018, 17:48
Ответы с готовыми решениями:

При передвижении вершин прямоугольника нужно отрисовать заново ребра
Есть класс MyButton:Button. В нем реализована потоковая обработка нажатия, перетаскивания, отпускания (возможность вручную передвигать...

Координаты объекта на сцене
Доброго времени суток. Пытаюсь программно сгенерировать карту мира для игры по обучающему видео. Столкнулся с одной проблемой. На первой...

Создание объекта на сцене
Привет! Помогите не как не могу разобраться мне нужно создать префаб на сцене в юнити вот в этой строке // создаем примитив куб и...

3
0 / 0 / 0
Регистрация: 21.01.2015
Сообщений: 85
13.02.2018, 17:37  [ТС]
Знаю, что отрисовка идет без скелета, и примитивы накладываются на вершины, да и вообще там есть один примитив - треугольник.
Очень нужно нарисовать скелет объекта с последующей возможностью накладывать текстуры.
Логика программы состоит в том, что на экран выводится дом и пользователь выбирает в каком варианте его смотреть: либо чертеж этого дома (как раз скелет/каркас 3D объекта) - легкий и понятный, либо сам дом (с текстурой) - красивый и привлекательный.

Относительно недавно начал изучать WPF и он мне очень понравился. Совсем не хочется из-за такой вот несуразицы искать другие варианты.
0
168 / 107 / 30
Регистрация: 19.01.2013
Сообщений: 849
14.02.2018, 08:51
А разве нет какого-нибудь понятного пакета расширения для домов?

Добавлено через 2 минуты
Типа такого:
https://www.ab4d.com/PowerToys.aspx

Добавлено через 1 минуту
поищите пакет nuget работающий с расширением файлов этих домов.
Не думаю, что вы их рисуете в своей проге и храните потом в txt.

Добавлено через 1 минуту
Запрос в гугле типа такого:
C# nuget 3d model
0
0 / 0 / 0
Регистрация: 21.01.2015
Сообщений: 85
15.02.2018, 11:43  [ТС]
В голову пришла мысль рисовать на гранях куба прозрачные прямоугольники с границами. Выглядит вполне неплохо, но задние грани не видны. Они либо удаляются, либо с прозрачностью что-то не так.

Вот сам код:
XML
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
   <Grid>
        <Viewport3D Panel.ZIndex="0">
            <Viewport3D.Camera>
                <PerspectiveCamera Position="5,4,4" LookDirection="-1,-1,-1"
FieldOfView="60" />
            </Viewport3D.Camera>
            <Viewport3D.Children>
                <ModelVisual3D>
                    <ModelVisual3D.Content>
                        <DirectionalLight Direction="-0.3,-0.4,-0.5" />
                    </ModelVisual3D.Content>
                </ModelVisual3D>
                <ModelVisual3D x:Name="Container">
                    <Viewport2DVisual3D>
                        <Viewport2DVisual3D.Transform>
                            <Transform3DGroup>
                                <TranslateTransform3D OffsetX="1.5" />
                                <RotateTransform3D>
                                    <RotateTransform3D.Rotation>
                                        <AxisAngleRotation3D x:Name="rotationY"
Axis="0,1,0" Angle="0" />
                                    </RotateTransform3D.Rotation>
                                </RotateTransform3D>
                            </Transform3DGroup>
                        </Viewport2DVisual3D.Transform>
                        <Viewport2DVisual3D.Geometry>
                            <MeshGeometry3D Positions="1,1,-1 1,-1,-1 -1,-1,-1 -1,1,-1 1,1,1 -1,1,1
-1,-1,1 1,-1,1 1,1,-1 1,1,1 1,-1,1 1,-1,-1
1,-1,-1 1,-1,1 -1,-1,1 -1,-1,-1 -1,-1,-1
-1,-1,1 -1,1,1 -1,1,-1 1,1,1 1,1,-1 -1,1,-1 -1,1,1"
TriangleIndices="0 1 2 0 2 3 4 5 6 4 6 7 8 9 10 8 10 11 12 13 14 12
14 15 16 17 18 16 18 19 20 21 22 20 22 23"
TextureCoordinates="0,1 0,0 1,0 1,1 1,1 -0,1 0,-0 1,0 1,1 -0,1 0,-0
1,0 1,0 1,1 -0,1 0,-0 -0,0 1,-0 1,1 0,1 1,-0 1,1 0,1 -0,0" />
                        </Viewport2DVisual3D.Geometry>
                        <Viewport2DVisual3D.Material>
                            <DiffuseMaterial
Viewport2DVisual3D.IsVisualHostMaterial="True" />
                        </Viewport2DVisual3D.Material>
                        <Rectangle Width="200" Height="200" Fill="#00000000"
        StrokeThickness="5" 
        Stroke="Gray" StrokeDashCap="Round" />
                    </Viewport2DVisual3D>
                </ModelVisual3D>
                <ModelUIElement3D>
                    <ModelUIElement3D.Transform>
                        <Transform3DGroup>
                            <ScaleTransform3D ScaleX="0.2" ScaleY="0.2" ScaleZ="0.2" />
                            <TranslateTransform3D x:Name="cube_translation" />
                        </Transform3DGroup>
                    </ModelUIElement3D.Transform>
                    <ModelUIElement3D.Model>
                        <GeometryModel3D>
                            <GeometryModel3D.Material>
                                <DiffuseMaterial>
                                    <DiffuseMaterial.Brush>
                                        <SolidColorBrush Color="Purple" />
                                    </DiffuseMaterial.Brush>
                                </DiffuseMaterial>
                            </GeometryModel3D.Material>
                            <GeometryModel3D.Geometry>
                                <MeshGeometry3D
Positions="1,1,-1 1,-1,-1 -1,-1,-1 -1,1,-1 1,1,1 -1,1,1 -1,-1,1
1,-1,1 1,1,-1 1,1,1 1,-1,1 1,-1,-1 1,-1,-1 1,-1,1 -1,-1,1
-1,-1,-1 -1,-1,-1 -1,-1,1 -1,1,1 -1,1,-1 1,1,1 1,1,-1
-1,1,-1 -1,1,1"
TriangleIndices="0 1 2 0 2 3 4 5 6 4 6 7 8 9 10 8 10 11 12 13 14 12
14 15 16 17 18 16 18 19 20 21 22 20 22 23"
TextureCoordinates="0,1 0,0 1,0 1,1 1,1 -0,1 0,-0 1,0 1,1 -0,1 0,-0
1,0 1,0 1,1 -0,1 0,-0 -0,0 1,-0 1,1 0,1 1,-0 1,1 0,1 -0,0" />
                            </GeometryModel3D.Geometry>
                        </GeometryModel3D>
                    </ModelUIElement3D.Model>
                </ModelUIElement3D>
            </Viewport3D.Children>
        </Viewport3D>
    </Grid>
Миниатюры
Можно ли отрисовать на 3D сцене ребра 3D объекта?  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.02.2018, 11:43
Помогаю со студенческими работами здесь

Вращение объекта на сцене свайпом
Как сделать плавное вращение RotateZone с помощью скрипта? Мне необходимо вращать землю пальцем(мышью). Что-то подобное можно видеть в MMO...

FindObjectOfType если объекта нет на сцене
у первого объекта есть FindObjectOfType как сделать взаимодействие скриптов если 2 объекта нет на сцене и только после intantiate...

Обращение к графической сцене из объекта, входящего в нее
есть QStackedWidget, в котором на определенной странице есть QGraphicsView, в котором QGraphicsScene, на которой много QGraphicsItem. так...

Отрисовать 2й объект с другими индексами(2 объекта в одном VAO)
Всем привет! Первый объект отрисовывается нормально. Хочу добавить 2й объект со своими индексами. Правильно ли я понимаю, что...

Нужно сделать fillet у ребра 3d объекта через visual lisp!
Основная проблема в том что я не знаю как отметить ребро 3d точкой! ПОМОГИИИТЕЕЕ!!!


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru