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

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

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

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

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




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Найти угол между двумя пересекающимися плоскостями
СообщениеДобавлено: 01 июл 2018, 15:11 
Не в сети
Начинающий
Зарегистрирован:
01 июл 2018, 14: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, 15:30 
Не в сети
Профи
Аватара пользователя
Зарегистрирован:
31 дек 2016, 04:01
Сообщений: 440
Откуда: Минск, Беларусь
Cпасибо сказано: 23
Спасибо получено:
100 раз в 97 сообщениях
Очков репутации: 20

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

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

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

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Найти угол между двумя пересекающимися плоскостями
СообщениеДобавлено: 01 июл 2018, 15:39 
Не в сети
Начинающий
Зарегистрирован:
01 июл 2018, 14: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, 15:47 
Не в сети
Профи
Аватара пользователя
Зарегистрирован:
31 дек 2016, 04: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, 16:44 
Не в сети
Гений
Аватара пользователя
Зарегистрирован:
10 дек 2014, 21:21
Сообщений: 578
Cпасибо сказано: 84
Спасибо получено:
297 раз в 245 сообщениях
Очков репутации: 64

Добавить очки репутацииУменьшить очки репутации
Найдите векторное произведение [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, 17:49 
Не в сети
Начинающий
Зарегистрирован:
01 июл 2018, 14: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, 18:43 
Не в сети
Light & Truth
Зарегистрирован:
25 апр 2010, 00:33
Сообщений: 2781
Cпасибо сказано: 190
Спасибо получено:
867 раз в 742 сообщениях
Очков репутации: 253

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

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

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


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

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

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

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

kicultanya

1

151

11 янв 2017, 17:55

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

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

locked

5

536

10 апр 2013, 14:44

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

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

kicultanya

1

124

27 фев 2017, 15:16

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

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

Baz

3

934

25 фев 2013, 20:31

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

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

gaelspb

1

268

07 дек 2012, 16:36

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

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

keyasrussian

19

1737

21 ноя 2014, 22:31

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

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

marlena

9

1493

08 апр 2013, 20:25

Угол между диагональными плоскостями

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

raaaaawwr

1

98

21 мар 2016, 12:56

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

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

Kristinadefa

1

329

06 май 2015, 20:23

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

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

belo4ka

8

356

10 фев 2013, 00:39


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



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

Сейчас этот форум просматривают: Andy, chiixishaoke и гости: 47


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

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

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

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