Дискуссионный математический форумМатематический форум

Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
MathHelpPlanet.com RSS-лента Математического форума

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Найти угол между двумя пересекающимися плоскостями
СообщениеДобавлено: 01 июл 2018, 14:11 
Не в сети
Начинающий
Зарегистрирован:
01 июл 2018, 13:51
Сообщений: 3
Cпасибо сказано: 0
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Привет!
Делаю программу в openscad, которая должна произвести манипуляции на линии пересечения двух плоскостей.
Для этого мне надо вычислить угол между этими двумя плоскостями.
Первая плоскость задана тремя точками A(x1,y1,z1) B(x2,y2,z2) C(x3,y3,z3)
Вторая плоскость задана тоже тремя точками D(xx1,yy1,zz1) E(xx2,yy2,zz2) F(xx3,yy3,zz3)
Я конечно же нашел в гугле полно формул, но они математические и не получается перевести их для языка программирования.
Нужна формула куда я бы мог подставить исходные координаты точек.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Найти угол между двумя пересекающимися плоскостями
СообщениеДобавлено: 01 июл 2018, 14:30 
Не в сети
Профи
Аватара пользователя
Зарегистрирован:
31 дек 2016, 03:01
Сообщений: 440
Откуда: Минск, Беларусь
Cпасибо сказано: 23
Спасибо получено:
100 раз в 97 сообщениях
Очков репутации: 20

Добавить очки репутацииУменьшить очки репутации
radus писал(а):
Делаю программу в openscad

Я в openscad никогда не работал.
radus писал(а):
Я конечно же нашел в гугле полно формул, но они математические и не получается перевести их для языка программирования.

А в языке программирования openscad нельзя работать с математическими выражениями: складывать, вычитать, умножать, делить?

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Найти угол между двумя пересекающимися плоскостями
СообщениеДобавлено: 01 июл 2018, 14:39 
Не в сети
Начинающий
Зарегистрирован:
01 июл 2018, 13:51
Сообщений: 3
Cпасибо сказано: 0
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
_Sasha_ писал(а):
radus писал(а):
Делаю программу в openscad

Я в openscad никогда не работал.
radus писал(а):
Я конечно же нашел в гугле полно формул, но они математические и не получается перевести их для языка программирования.

А в языке программирования openscad нельзя работать с математическими выражениями: складывать, вычитать, умножать, делить?

Все можно вот я например написал функцию
function a(A,B,C,D,E,F)=acos((A*D+B*E+C*F)/(sqrt(A*A+B*B+C*C)*sqrt(D*D+E*E+F*F)));
Но тут a b c d e f это просто переменные, а мне надо как-то надо их вычислить из координат x1 y1 z1 ... которые заданы в начале

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Найти угол между двумя пересекающимися плоскостями
СообщениеДобавлено: 01 июл 2018, 14:47 
Не в сети
Профи
Аватара пользователя
Зарегистрирован:
31 дек 2016, 03:01
Сообщений: 440
Откуда: Минск, Беларусь
Cпасибо сказано: 23
Спасибо получено:
100 раз в 97 сообщениях
Очков репутации: 20

Добавить очки репутацииУменьшить очки репутации
Вам надо вычислить (выразить) угол между этими двумя плоскостями не через A, B, C, D, E, F, а через x1, y1, z1, x2, y2, z2, x3, y3, z3, xx1, yy1, zz1, xx2, yy2, zz2, xx3, yy3, zz3.

Возможно, Вам сначала нужно выразить A, B, C, D, E, F через x1, y1, z1, x2, y2, z2, x3, y3, z3, xx1, yy1, zz1, xx2, yy2, zz2, xx3, yy3, zz3, а потом воспользоваться Вашей функцией a.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Найти угол между двумя пересекающимися плоскостями
СообщениеДобавлено: 01 июл 2018, 15:44 
Не в сети
Гений
Аватара пользователя
Зарегистрирован:
10 дек 2014, 20:21
Сообщений: 631
Cпасибо сказано: 86
Спасибо получено:
316 раз в 263 сообщениях
Очков репутации: 66

Добавить очки репутацииУменьшить очки репутации
Найдите векторное произведение [math]\overrightarrow {{V_1}} = \overrightarrow {AB} \times \overrightarrow {AC}[/math] (https://ru.wikipedia.org/wiki/Векторное_произведение) и разделите на модуль - получите единичный вектор нормали к первой плоскости: [math]{\overrightarrow n _1} = \frac{{\overrightarrow {{V_1}} }}{{\left| {\overrightarrow {{V_1}} } \right|}}[/math].
Некоторые языки программирования имеют встроенные функции по нахождению векторного произведения, но если готовой нет - воспользуйтесь формулой из Вики.

Тоже самое проделайте со второй плоскостью.
Скалярное произведение нормалей и даст косинус искомого угла: [math]\cos \left( \alpha \right) ={\overrightarrow n _1}\cdot{\overrightarrow n _2}[/math].

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Найти угол между двумя пересекающимися плоскостями
СообщениеДобавлено: 01 июл 2018, 16:49 
Не в сети
Начинающий
Зарегистрирован:
01 июл 2018, 13:51
Сообщений: 3
Cпасибо сказано: 0
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Вот такая огромная функция получилась
тут первая плоскость задается координатами AX1,AY1,AZ1, AX2,AY2,AZ2, AX3,AY3,AZ3
вторая плоскость задается координатами BX1,BY1,BZ1, BX2,BY2,BZ2, BX3,BY3,BZ3

function a2p(AX1,AY1,AZ1, AX2,AY2,AZ2, AX3,AY3,AZ3, BX1,BY1,BZ1, BX2,BY2,BZ2, BX3,BY3,BZ3) =
acos(abs(((AY2-AY1)*(AZ3-AZ1)-(AZ2-AZ1)*(AY3-AY1))*((BY2-BY1)*(BZ3-BZ1)-(BZ2-BZ1)*(BY3-BY1))+((AX3-AX1)*(AZ2-AZ1)-(AX2-AX1)*(AZ3-AZ1))*((BX3-BX1)*(BZ2-BZ1)-(BX2-BX1)*(BZ3-BZ1))+((AY3-AY1)*(AX2-AX1)-(AY2-AY1)*(AX3-AX1))*((BY3-BY1)*(BX2-BX1)-(BY2-BY1)*(BX3-BX1)))/(sqrt(((AY2-AY1)*(AZ3-AZ1)-(AZ2-AZ1)*(AY3-AY1))*((AY2-AY1)*(AZ3-AZ1)-(AZ2-AZ1)*(AY3-AY1))+((AX3-AX1)*(AZ2-AZ1)-(AX2-AX1)*(AZ3-AZ1))*((AX3-AX1)*(AZ2-AZ1)-(AX2-AX1)*(AZ3-AZ1))+((AY3-AY1)*(AX2-AX1)-(AY2-AY1)*(AX3-AX1))*((AY3-AY1)*(AX2-AX1)-(AY2-AY1)*(AX3-AX1)))*sqrt(((BY2-BY1)*(BZ3-BZ1)-(BZ2-BZ1)*(BY3-BY1))*((BY2-BY1)*(BZ3-BZ1)-(BZ2-BZ1)*(BY3-BY1))+((BX3-BX1)*(BZ2-BZ1)-(BX2-BX1)*(BZ3-BZ1))*((BX3-BX1)*(BZ2-BZ1)-(BX2-BX1)*(BZ3-BZ1))+((BY3-BY1)*(BX2-BX1)-(BY2-BY1)*(BX3-BX1))*((BY3-BY1)*(BX2-BX1)-(BY2-BY1)*(BX3-BX1)))));

Всем спасибо! =)

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Найти угол между двумя пересекающимися плоскостями
СообщениеДобавлено: 01 июл 2018, 17:43 
Не в сети
Light & Truth
Зарегистрирован:
24 апр 2010, 23:33
Сообщений: 2790
Cпасибо сказано: 191
Спасибо получено:
868 раз в 743 сообщениях
Очков репутации: 255

Добавить очки репутацииУменьшить очки репутации
Можно так. См.картинку.Изображение

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Найти угол между двумя пересекающимися плоскостями
СообщениеДобавлено: 01 июл 2018, 20:49 
Не в сети
Гений
Аватара пользователя
Зарегистрирован:
10 дек 2014, 20:21
Сообщений: 631
Cпасибо сказано: 86
Спасибо получено:
316 раз в 263 сообщениях
Очков репутации: 66

Добавить очки репутацииУменьшить очки репутации
radus писал(а):
Вот такая огромная функция получилась...


Посмотрел справочник по OpenSCAD-у.
Там есть функция векторного произведения "cross".
Можно также и находить длину вектора - функция "norm".
Есть обычные операторы умножения и деления вектора на число "*", "/".
Для скалярного произведения двух векторов надо просто их умножить (*) и получить скаляр.
То есть Ваш код можно значительно упростить.

Вернуться к началу
 Профиль  
Cпасибо сказано 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Найти угол между плоскостями

в форуме Геометрия

kicultanya

1

124

27 фев 2017, 14:16

Найти угол между плоскостями п1 и п2

в форуме Аналитическая геометрия и Векторная алгебра

borz-anna

1

231

20 окт 2011, 15:46

Найти угол между плоскостями

в форуме Геометрия

locked

5

545

10 апр 2013, 13:44

Найти угол между плоскостями

в форуме Геометрия

kicultanya

1

151

11 янв 2017, 16:55

Найти угол между плоскостями в кубе

в форуме Геометрия

Baz

3

939

25 фев 2013, 19:31

Найти двугранный угол между плоскостями пирамиды

в форуме Геометрия

Yulashka

1

521

27 фев 2012, 17:55

Найти угол между двумя векторами

в форуме Аналитическая геометрия и Векторная алгебра

gaelspb

1

276

07 дек 2012, 15:36

Угол между плоскостями

в форуме Геометрия

Sviatoslav

10

542

07 июн 2012, 13:29

Угол между плоскостями

в форуме Геометрия

keyasrussian

19

1755

21 ноя 2014, 21:31

Угол между плоскостями

в форуме Геометрия

marlena

9

1516

08 апр 2013, 19:25


Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2018 MathHelpPlanet.com. All rights reserved