Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
-4 / 0 / 1
Регистрация: 24.12.2011
Сообщений: 51
1

Как сделать куб, сторонами которого является заданный квадрат

04.03.2012, 16:12. Показов 2636. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Допустим есть квадрат с изображением внутри все .jpg файл как из него сделать куб чтобы этот квадрат был сторонами куба.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.03.2012, 16:12
Ответы с готовыми решениями:

Определить, является ли треугольник, с заданный сторонами, прямоугольным
Нужна срочная помощь по написанию программы в Visual Basic 6.0! Помогите поалуйста, буду очень...

Как звучит звук линейной функции, y=x(квадрат) и у=х(куб)?
У меня вопрос кто знает как звучит звук линейной функции, y=x(квадрат) и у=х(куб)????

В трёхмерной системе координат x,y,z есть куб со сторонами 1x1x1 . и плоскость x+y+z=1. как найти объём фигуры внутри куба где x+y+z>1 ?
В трёхмерной системе координат x,y,z есть куб со сторонами 1x1x1 . и плоскость x+y+z=1. как найти...

Как возвести числа в квадрат , куб (также в другие степени ) в с++?
помогите пожалуйста )

5
Эксперт С++
3574 / 2828 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 22
04.03.2012, 21:57 2
Лучший ответ Сообщение было отмечено _lunar_ как решение

Решение

реализация через MDX (как я понял вам нужно обычную текстуру наложить на каркас куба):
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
using System;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;
 
namespace texture
{
    public partial class Form1 : Form
    {
        Device device;
        Texture texture;
 
        public float angle { get; set; }
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.Opaque, true);
 
            var presentParameters = new PresentParameters()
            {
                Windowed = true,
                SwapEffect = SwapEffect.Discard
            };
 
            device = new Device(0, DeviceType.Hardware, Handle, CreateFlags.SoftwareVertexProcessing, presentParameters);
        }
 
        private void SetupCamera()
        {
            device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, Width / Height, 1.0f, 100.0f);
            device.Transform.View = Matrix.LookAtLH(new Vector3(0, 0, 8.0f), new Vector3(), new Vector3(0, 1, 0));
            device.RenderState.Lighting = false;
            device.Transform.World = Matrix.RotationYawPitchRoll(angle / (float)Math.PI, angle / (float)Math.PI * 2.0f, angle / (float)Math.PI);
            angle += 0.1f;
        }
 
        protected override void OnPaint(PaintEventArgs e)
        {
            device.Clear(ClearFlags.Target, Color.CornflowerBlue, 1.0f, 0);
            SetupCamera();
            CustomVertex.PositionTextured[] verts = new CustomVertex.PositionTextured[36];
            // Front face
            verts[0] = new CustomVertex.PositionTextured(-1.0f, 1.0f, 1.0f, 0.0f, 0.0f);
            verts[1] = new CustomVertex.PositionTextured(-1.0f, -1.0f, 1.0f, 0.0f, 1.0f);
            verts[2] = new CustomVertex.PositionTextured(1.0f, 1.0f, 1.0f, 1.0f, 0.0f);
            verts[3] = new CustomVertex.PositionTextured(-1.0f, -1.0f, 1.0f, 0.0f, 1.0f);
            verts[4] = new CustomVertex.PositionTextured(1.0f, -1.0f, 1.0f, 1.0f, 1.0f);
            verts[5] = new CustomVertex.PositionTextured(1.0f, 1.0f, 1.0f, 1.0f, 0.0f);
            // Back face (remember this is facing *away* from the camera, so vertices should be clockwise order)
            verts[6] = new CustomVertex.PositionTextured(-1.0f, 1.0f, -1.0f, 0.0f, 0.0f);
            verts[7] = new CustomVertex.PositionTextured(1.0f, 1.0f, -1.0f, 1.0f, 0.0f);
            verts[8] = new CustomVertex.PositionTextured(-1.0f, -1.0f, -1.0f, 0.0f, 1.0f);
            verts[9] = new CustomVertex.PositionTextured(-1.0f, -1.0f, -1.0f, 0.0f, 1.0f);
            verts[10] = new CustomVertex.PositionTextured(1.0f, 1.0f, -1.0f, 1.0f, 0.0f);
            verts[11] = new CustomVertex.PositionTextured(1.0f, -1.0f, -1.0f, 1.0f, 1.0f);
            // Top face
            verts[12] = new CustomVertex.PositionTextured(-1.0f, 1.0f, 1.0f, 0.0f, 0.0f);
            verts[13] = new CustomVertex.PositionTextured(1.0f, 1.0f, -1.0f, 1.0f, 1.0f);
            verts[14] = new CustomVertex.PositionTextured(-1.0f, 1.0f, -1.0f, 0.0f, 1.0f);
            verts[15] = new CustomVertex.PositionTextured(-1.0f, 1.0f, 1.0f, 0.0f, 0.0f);
            verts[16] = new CustomVertex.PositionTextured(1.0f, 1.0f, 1.0f, 1.0f, 0.0f);
            verts[17] = new CustomVertex.PositionTextured(1.0f, 1.0f, -1.0f, 1.0f, 1.0f);
            // Bottom face (remember this is facing *away* from the camera, so vertices should be clockwise order)
            verts[18] = new CustomVertex.PositionTextured(-1.0f, -1.0f, 1.0f, 0.0f, 0.0f);
            verts[19] = new CustomVertex.PositionTextured(-1.0f, -1.0f, -1.0f, 0.0f, 1.0f);
            verts[20] = new CustomVertex.PositionTextured(1.0f, -1.0f, -1.0f, 1.0f, 1.0f);
            verts[21] = new CustomVertex.PositionTextured(-1.0f, -1.0f, 1.0f, 0.0f, 0.0f);
            verts[22] = new CustomVertex.PositionTextured(1.0f, -1.0f, -1.0f, 1.0f, 1.0f);
            verts[23] = new CustomVertex.PositionTextured(1.0f, -1.0f, 1.0f, 1.0f, 0.0f);
            // Left face
            verts[24] = new CustomVertex.PositionTextured(-1.0f, 1.0f, 1.0f, 0.0f, 0.0f);
            verts[25] = new CustomVertex.PositionTextured(-1.0f, -1.0f, -1.0f, 1.0f, 1.0f);
            verts[26] = new CustomVertex.PositionTextured(-1.0f, -1.0f, 1.0f, 1.0f, 0.0f);
            verts[27] = new CustomVertex.PositionTextured(-1.0f, 1.0f, -1.0f, 0.0f, 1.0f);
            verts[28] = new CustomVertex.PositionTextured(-1.0f, -1.0f, -1.0f, 1.0f, 1.0f);
            verts[29] = new CustomVertex.PositionTextured(-1.0f, 1.0f, 1.0f, 0.0f, 0.0f);
            // Right face (remember this is facing *away* from the camera, so vertices should be clockwise order)
            verts[30] = new CustomVertex.PositionTextured(1.0f, 1.0f, 1.0f, 0.0f, 0.0f);
            verts[31] = new CustomVertex.PositionTextured(1.0f, -1.0f, 1.0f, 1.0f, 0.0f);
            verts[32] = new CustomVertex.PositionTextured(1.0f, -1.0f, -1.0f, 1.0f, 1.0f);
            verts[33] = new CustomVertex.PositionTextured(1.0f, 1.0f, -1.0f, 0.0f, 1.0f);
            verts[34] = new CustomVertex.PositionTextured(1.0f, 1.0f, 1.0f, 0.0f, 0.0f);
            verts[35] = new CustomVertex.PositionTextured(1.0f, -1.0f, -1.0f, 1.0f, 1.0f);
 
            texture = new Texture(device, new Bitmap("pic.bmp"), Usage.Dynamic, Pool.Default);
            device.SetTexture(0, texture);
            device.BeginScene();
            device.VertexFormat = CustomVertex.PositionTextured.Format;
            device.DrawUserPrimitives(PrimitiveType.TriangleList, 12, verts);
            device.EndScene();
            device.Present();
            Invalidate();
        }
    }
}
если кода много, можете использовать Mesh-объекты
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Mesh mesh;
private void Form1_Load(object sender, EventArgs e)
        {
            SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.Opaque, true);
 
            var presentParameters = new PresentParameters()
            {
                Windowed = true,
                SwapEffect = SwapEffect.Discard
            };
 
            device = new Device(0, DeviceType.Hardware, Handle, CreateFlags.HardwareVertexProcessing, presentParameters);
 
            mesh = Mesh.Box(device, 2.0f, 2.0f, 2.0f);
        }
для загрузки текстуры создайте метод и передайте в него string параметр.
а ещё проще используйте XNA, там сочинять ничего не нужно.
весь проект можете посмотреть в прикреплённых.
Вложения
Тип файла: rar texture.rar (196.4 Кб, 35 просмотров)
2
-4 / 0 / 1
Регистрация: 24.12.2011
Сообщений: 51
06.03.2012, 18:15  [ТС] 3
как я понял нужны доп. библиотеки?
0
Эксперт С++
3574 / 2828 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 22
06.03.2012, 18:24 4
Лучший ответ Сообщение было отмечено _lunar_ как решение

Решение

можете конечно использовать обычный System.Drawing http://msdn.microsoft.com/ru-r... awing.aspx но я не работаю с этим пространством имён когда речь идёт о графики и не знаю можно ли там подключать текстуры или нет.
1
-4 / 0 / 1
Регистрация: 24.12.2011
Сообщений: 51
06.03.2012, 18:29  [ТС] 5
где скачать не подскажете?
0
44 / 45 / 15
Регистрация: 11.08.2010
Сообщений: 226
06.03.2012, 18:41 6
Стандартная, просто подключите ее using-ом
1
06.03.2012, 18:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.03.2012, 18:41
Помогаю со студенческими работами здесь

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

Массив: Поменять местами столбец, произведение элементов которого является наименьшим, со столбцом, сумма элементов которого является наибольшей
Дана матрица вещественных чисел. Поменять местами столбец, произведение элементов которого является...

Поменять местами столбец, произведение элементов которого является наименьшим, со столбцом, сумма элементов которого является наибольшей
Дана матрица вещественных чисел. Поменять местами столбец, произведение элементов которого является...

Как отловить попадение курсора в заданный квадрат на канве
Изначально, как мне казалось, проблемы в вопросе никакой нет. Однако, оказалось, что справиться я...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru