Площади треугольников
-
- assistant
- Сообщения: 105
- Зарегистрирован: 27 фев 2009, 15:00
- Награды: 1
- Версия LabVIEW: 8.5
- Контактная информация:
Площади треугольников
Здраствуйте. У меня такая проблема: Есть массив 256 на 256 значений это Х и еще массив 256 на 256 значений это Y. Х и Y это координаты вершин треугольника. Мне нужно найти площади всех треугольников по формуле S=1/2[x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2)]. Как это можно сделать в LabVIEW? Заранее спасибо.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Помогите пожалуйста разобраться
Странно, но это не кратно числу 3. И почему вообще 2D массивы, а не 1D ?
-
- assistant
- Сообщения: 105
- Зарегистрирован: 27 фев 2009, 15:00
- Награды: 1
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Помогите пожалуйста разобраться
для рассчета площади треугольника: Надо взять матрицу 2 на 2 из массива Y и найти площадь двух треугольников, потом взять следующий сектор 2 на 2 (но он должен содержать 2 последние точки первой матрицы) и так далее. А координата Х повторяется через каждые 256 значений, она от 0 до 256 и так по кругу. 2D массивы потому что это не плоская фигура, там как бы треугольники, приближение такое просто , но по формуле треугольников довольно точный результат будет.
-
- assistant
- Сообщения: 105
- Зарегистрирован: 27 фев 2009, 15:00
- Награды: 1
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Помогите пожалуйста разобраться
При расчете площади треугольников в матрице 2 на 2 там точки по Y повторяться будут и надо находить по 2 площади треугольников в каждой матрице 2 на 2.
например:
Ai Bi Ci
Aj Bj Cj
надо находить площадь сначала с координатами Aj Bj Bi, потом Ai Bi Aj, Затем площади треугольников BjCjCi и BiCiCj и так для всех матриц 2 на 2 из большой матрицы 256 на 256.
Если кто умеет и знает как это осуществить помогите пожалуйста. Заранее спасибо.
например:
Ai Bi Ci
Aj Bj Cj
надо находить площадь сначала с координатами Aj Bj Bi, потом Ai Bi Aj, Затем площади треугольников BjCjCi и BiCiCj и так для всех матриц 2 на 2 из большой матрицы 256 на 256.
Если кто умеет и знает как это осуществить помогите пожалуйста. Заранее спасибо.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Площади треугольников
Насколько я понимаю, матрица 2х2 содержит четыре треугольника с разными площадями, а ты перечислил только два (и два других из следующей матрицы 2х2). Правильно ли это?
-
- assistant
- Сообщения: 105
- Зарегистрирован: 27 фев 2009, 15:00
- Награды: 1
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Площади треугольников
Нет. Матрица 2 на 2 содержит 2 треугольника.
Если это матрица с координатами по Y:
1 2
3 4
то в определении площади первого треугольника участвуют координаты 1 2 3, а в определении площади второго треугольника координаты 2 3 4.
Если это матрица с координатами по Y:
1 2
3 4
то в определении площади первого треугольника участвуют координаты 1 2 3, а в определении площади второго треугольника координаты 2 3 4.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Площади треугольников
В общем скажу что нужно взять For-loop, подключить к нему твой 2D массив без автоиндексации, а дальше высчитывать из итратора нужные тебе индексы и использовать Index Array. После нахождения нужных трёх элементов массива применять формулу рассчёта с помощью Formula Node.
-
- assistant
- Сообщения: 105
- Зарегистрирован: 27 фев 2009, 15:00
- Награды: 1
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Площади треугольников
Спасибо за помощь. Попробую так сделать, но я в LabVIEW новичок, поэтому немного не понял. Индексы в цикле автоматически меняться будут или мне нужно будет их постоянно задавать самому? Что такое итратор, это i в цикле For-loop? Formula Node тоже должена быть в этом цикле или без цикла вообще?
-
- assistant
- Сообщения: 105
- Зарегистрирован: 27 фев 2009, 15:00
- Награды: 1
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Площади треугольников
Подскажите пожалуйста, как в цикле высчитывать нужные индексы у меня не получается. Выдает или строку или столбец целиком.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Площади треугольников
Ну так и правильно, выделяешь две целые строки, а потом берёшь ещё один цикл For, и в нём уже берёшь отдельные элементы этих двух строк.
-
- assistant
- Сообщения: 105
- Зарегистрирован: 27 фев 2009, 15:00
- Награды: 1
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Площади треугольников
А как задать потом чтобы программа перебирала индексы? А то выделяется только матрица 2 на 2.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Площади треугольников
Покажи, что получилось, сделай скрин блок диаграммы и выложи в форум. Посмотрим.
-
- assistant
- Сообщения: 105
- Зарегистрирован: 27 фев 2009, 15:00
- Награды: 1
- Версия LabVIEW: 8.5
- Контактная информация:
Re: Площади треугольников
Я так делаю или что то неправильно? на Выходе получается 1 матрица 2 на 2. Индексы не перебираются
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 5 Ответы
- 506 Просмотры
-
Последнее сообщение Юрий