Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/55: Рейтинг темы: голосов - 55, средняя оценка - 4.62
2 / 2 / 3
Регистрация: 17.09.2013
Сообщений: 279

Построить 3D-модель по координатам с устройства

19.07.2017, 21:21. Показов 11411. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, нужен ваш совет. Есть устройство для сканирования объекта выдающий результаты в формате точек X, Y, Z. Нужно по ним построить этот объект. С помощью чего это можно сделать? Может у кого есть какие-то примеры или силки.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.07.2017, 21:21
Ответы с готовыми решениями:

Построить модель кодирующего устройства циклического кода
Построить модель кодирующего устройства циклического кода. Способ кодирования (1), n=7, k=4, g(x)={x}^{3}+{x}^{2}+1 Кто сможет...

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

Как определить модель мобильного устройства на сайте?
Сидел в интернете и наткнулся на вирусный сайт вроде "Ваш телефон ZTE Blade GF3<угадал мою модель> заражен вирусом, это приведет к...

26
2 / 2 / 3
Регистрация: 17.09.2013
Сообщений: 279
21.07.2017, 20:37  [ТС]
Студворк — интернет-сервис помощи студентам
етот файл
Вложения
Тип файла: rar WindowsFormsApplication1.rar (38.7 Кб, 7 просмотров)
0
2 / 2 / 3
Регистрация: 17.09.2013
Сообщений: 279
21.07.2017, 21:57  [ТС]
разобрался с проблемой, но теперь не понимаю чего если этот код
C#
1
2
3
4
5
6
7
8
9
10
            w[0] = new Point3D(-50, -50, -50);
            w[1] = new Point3D(50, -50, -50);
            w[2] = new Point3D(50, 50, -50);
            w[3] = new Point3D(-50, 50, -50);
            w[4] = new Point3D(-50, -50, 50);
            w[5] = new Point3D(50, -50, 50);
            w[6] = new Point3D(50, 50, 50);
            w[7] = new Point3D(-50, 50, 50);
            AddToCollection();
            Paint += new PaintEventHandler(Form1_Paint);
находится здесь
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        public Form1()
        {
            InitializeComponent();
 
            w[0] = new Point3D(-50, -50, -50);
            w[1] = new Point3D(50, -50, -50);
            w[2] = new Point3D(50, 50, -50);
            w[3] = new Point3D(-50, 50, -50);
            w[4] = new Point3D(-50, -50, 50);
            w[5] = new Point3D(50, -50, 50);
            w[6] = new Point3D(50, 50, 50);
            w[7] = new Point3D(-50, 50, 50);
            AddToCollection();
            Paint += new PaintEventHandler(Form1_Paint);
 
        }
то все строится норм, а если я хочу чтобы только когда кнопку нажмешь происходило построение то ничего не происходит
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        private void button1_Click(object sender, EventArgs e)
        {
            w[0] = new Point3D(-50, -50, -50);
            w[1] = new Point3D(50, -50, -50);
            w[2] = new Point3D(50, 50, -50);
            w[3] = new Point3D(-50, 50, -50);
            w[4] = new Point3D(-50, -50, 50);
            w[5] = new Point3D(50, -50, 50);
            w[6] = new Point3D(50, 50, 50);
            w[7] = new Point3D(-50, 50, 50);
            AddToCollection();
            Paint += new PaintEventHandler(Form1_Paint);
        }
0
 Аватар для Веселый
87 / 88 / 48
Регистрация: 12.10.2013
Сообщений: 1,103
22.07.2017, 10:28
Смотрите на аргументы в методе.Событие Click вызываемое методом button_Click () не имеет аргумента( Paint p).
1
 Аватар для netBool
325 / 304 / 173
Регистрация: 16.11.2010
Сообщений: 1,069
Записей в блоге: 9
22.07.2017, 12:06
Наверное нужно добавить
C#
1
this.Refresh();
А вообще
C#
1
 Paint += new PaintEventHandler(Form1_Paint);
я бы все-таки перенес куда-нибудь в InitializeComponent() или в тот же Form1(), т.к. его нужно 1 раз вызвать в начале программы и все, этого достаточно
1
2 / 2 / 3
Регистрация: 17.09.2013
Сообщений: 279
24.07.2017, 20:31  [ТС]
работаю COMport, считывает данные, и записываю их в dataGridView,

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private void COMport_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            string x_step = serialPort1.ReadLine();
            string y_step = serialPort1.ReadLine();
            string z_step = serialPort1.ReadLine();
            this.BeginInvoke(new LineReceivedEvent(LineReceived), x_step, y_step, z_step);
        }
 
        private delegate void LineReceivedEvent(string x_step, string y_step, string z_step);
        private void LineReceived(string x_step, string y_step, string z_step)
        {
            dataGridView1.Rows.Add();
            dataGridView1.Rows[i_dani].Cells[0].Value = x_step;
            dataGridView1.Rows[i_dani].Cells[1].Value = y_step;
            dataGridView1.Rows[i_dani].Cells[2].Value = z_step;
i_dani++;
}
это происходит хорошо, но когда хочу эти данные передать в формулу для перевода 3д координат в 2д,

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
        private void COMport_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            string x_step = serialPort1.ReadLine();
            string y_step = serialPort1.ReadLine();
            string z_step = serialPort1.ReadLine();
            this.BeginInvoke(new LineReceivedEvent(LineReceived), x_step, y_step, z_step);
        }
 
        private delegate void LineReceivedEvent(string x_step, string y_step, string z_step);
        private void LineReceived(string x_step, string y_step, string z_step)
        {
            dataGridView1.Rows.Add();
            dataGridView1.Rows[i_dani].Cells[0].Value = x_step;
            dataGridView1.Rows[i_dani].Cells[1].Value = y_step;
            dataGridView1.Rows[i_dani].Cells[2].Value = z_step;
 
 
            
            
 
           double x = (double)(Convert.ToDouble(x_step) * (-Math.Sin(teta * Math.PI / 180)) + Convert.ToDouble(y_step) * (Math.Cos(teta * Math.PI / 180))) +
 this.Width / 2f;
            double y = (double)(Convert.ToDouble(x_step) * (-Math.Cos(phi * Math.PI / 180) * Math.Cos(teta * Math.PI / 180))
                - Convert.ToDouble(y_step) * (Math.Sin(teta * Math.PI / 180) * Math.Cos(phi * Math.PI / 180)) + Convert.ToDouble(z_step) * (Math.Sin(phi * Math.PI / 180))) +
                 this.Height / 2f;
 
            chart1.Series[0].Points.AddXY(x, y);
            i_dani++;
 
        }
выдает такую ошибку, незнаю как исправить
Миниатюры
Построить 3D-модель по координатам с устройства  
0
2 / 2 / 3
Регистрация: 17.09.2013
Сообщений: 279
24.07.2017, 22:58  [ТС]
работаю COMport, считывает данные, и записываю их в dataGridView,

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private void COMport_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            string x_step = serialPort1.ReadLine();
            string y_step = serialPort1.ReadLine();
            string z_step = serialPort1.ReadLine();
            this.BeginInvoke(new LineReceivedEvent(LineReceived), x_step, y_step, z_step);
        }
 
        private delegate void LineReceivedEvent(string x_step, string y_step, string z_step);
        private void LineReceived(string x_step, string y_step, string z_step)
        {
            dataGridView1.Rows.Add();
            dataGridView1.Rows[i_dani].Cells[0].Value = x_step;
            dataGridView1.Rows[i_dani].Cells[1].Value = y_step;
            dataGridView1.Rows[i_dani].Cells[2].Value = z_step;
i_dani++;
}
это происходит хорошо, но когда хочу эти данные передать в формулу для перевода 3д координат в 2д,

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
        private void COMport_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            string x_step = serialPort1.ReadLine();
            string y_step = serialPort1.ReadLine();
            string z_step = serialPort1.ReadLine();
            this.BeginInvoke(new LineReceivedEvent(LineReceived), x_step, y_step, z_step);
        }
 
        private delegate void LineReceivedEvent(string x_step, string y_step, string z_step);
        private void LineReceived(string x_step, string y_step, string z_step)
        {
            dataGridView1.Rows.Add();
            dataGridView1.Rows[i_dani].Cells[0].Value = x_step;
            dataGridView1.Rows[i_dani].Cells[1].Value = y_step;
            dataGridView1.Rows[i_dani].Cells[2].Value = z_step;
 
 
            
            
 
           double x = (double)(Convert.ToDouble(x_step) * (-Math.Sin(teta * Math.PI / 180)) + Convert.ToDouble(y_step) * (Math.Cos(teta * Math.PI / 180))) +
 this.Width / 2f;
            double y = (double)(Convert.ToDouble(x_step) * (-Math.Cos(phi * Math.PI / 180) * Math.Cos(teta * Math.PI / 180))
                - Convert.ToDouble(y_step) * (Math.Sin(teta * Math.PI / 180) * Math.Cos(phi * Math.PI / 180)) + Convert.ToDouble(z_step) * (Math.Sin(phi * Math.PI / 180))) +
                 this.Height / 2f;
 
            chart1.Series[0].Points.AddXY(x, y);
            i_dani++;
 
        }
выдает такую ошибку, незнаю как исправить

Добавлено через 2 часа 26 минут
программе чего-то не нравится когда приходит такой параметр - z_step = 15.50
если просто вместо z_step написать число 15.50 то все норм работает в чем суть?
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
24.07.2017, 23:22
у тебя в системе установлено, что разделитель целой и дробной частей запятая, а в строке у тебя точка
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.07.2017, 23:22

Модель электронного устройства с использованием абстрактных классов
Здравствуйте, уважаемые форумчане! Продолжаю готовиться к экзамену по Real Time. Задание выложить не могу, но вкратце такое: Step 1...

Подскажите как это модель устройства GPS навигации
Помогите узнать модель устройства. Знаю, что: RAM равен 44 Mb Объём встроенной памяти 20 Mb Размер изображения 480x272 (16 bit) ...

Построить многоугольник по координатам
Построить произвольный N-угольник по координатам его вершин (N и координаты ввести с клавиатуры). Если многоугольник выпуклый, то найти его...

Построить объект по координатам
Не могу никак , пересмотрел огромный масштаб информ. нужно чтобы 3D объект строился по данным которые находятся в lineedit. строю с opengl....

как узнать производителя и модель устройства для установки драйверов?
как узнать производителя и модель устройства для установки драйверов?


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru