Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 27.06.2015
Сообщений: 1

Определить наибольший угол между прямой и заданными плоскостями при помощи процедуры пользователя

27.06.2015, 14:19. Показов 1993. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задана прямая x=x0+kt, y=y0+mt, z=z0+nt, где t - любое действительное число, и плоскости A1x+B1y+C1z+D1=0 и A2x+B2y+C2z+D2=0. Нужно определить наибольший угол между прямой и заданными плоскостями при помощи процедуры пользователя.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.06.2015, 14:19
Ответы с готовыми решениями:

Определить угол между плоскостями
Добрый день! Застопорился немного с задачей, второй день не могу решить, подтолкните пожалуйста на решение. Условие: Основой...

При каком значении параметра угол между плоскостями равен данному?
При каком значении m угол между плоскостями Альфа и Бета равен Пи/3 ? Плоскость Альфа проходит через точки А (0;-1/2;-1/2 ), В (-3; 1; 1) и...

угол между плоскостями
Помогите, пожалуйста, решить или хотя бы построить чертеж. Через центр О квадрата ABCD проведен к его плоскости перпендикуляр SO. Угол...

1
Модератор
10429 / 5717 / 3404
Регистрация: 17.08.2012
Сообщений: 17,384
28.06.2015, 11:45
Лучший ответ Сообщение было отмечено Valerina как решение

Решение

Прямая задана в параметрической форме, плоскости - в общей форме.

Направляющий вектор прямой:

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\vec{a}=(k,\,m,\,n)<br />

Нормальные векторы плоскостей:

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\vec{n_i}=(A_i,\,B_i,\,C_i)<br />

Угол между прямой и плоскостью:

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\alpha =\arcsin \frac{\left|\left(\vec{a},\, \vec{n} \right) \right|}{\left|\vec{a} \right|\cdot \left|\vec{n} \right|}=\arcsin \frac{a_x\cdot n_x+a_y\cdot n_y+a_z\cdot n_z}{\sqrt{a_x^2+a_y^2+a_z^2\,}\cdot \sqrt{n_x^2+n_y^2+n_z^2\,}}<br />

Замечание: имя аппликаты вектора https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\ \vec{a}\ (a_z=n)\ \ <br />
в формулах совпадает с именем вектора https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\ \vec{n}\ <br />
. По контексту понятно, переименовывать не стал в силу общепринятой системы обозначений и из-за лени.

Пишем программу:
Pascal
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
type vector = array ['x'..'z'] of double;
 
procedure angle(a, n: vector; var alp: double);
var aan, aa, an: double;
    i: char;
begin
  aan := 0;
  aa := 0;
  an := 0;
  for i := 'x' to 'z' do
    begin
      aan := aan + a[i] * n[i];
      aa := aa + sqr(a[i]);
      an := an + sqr(a[i]);
    end;
  alp := aan / sqrt(aa) / sqrt(an)
end;
 
procedure read_q(s: string; var q: double);
begin
  write(s, ' = ');
  readln(q)
end;
 
procedure read_v(s, t: string; var v: vector);
var i: char;
begin
  repeat
    for i := 'x' to 'z' do read_q(s[byte(i) - byte('w')], v[i]);
    if (v['x'] = 0) and (v['y'] = 0) and (v['z'] = 0) then writeln('Это не уравнение ', t, ', повторите ввод')
  until (v['x'] <> 0) or (v['y'] <> 0) or (v['z'] <> 0)
end;
 
var i: integer;
    plane: array [1..2] of vector;
    line: vector;
    alpha: array [1..2] of double;
 
begin
  writeln('Прямая задана параметрически: x=x0+kt, y=y0+mt, z=z0+nt');
  read_v('kmn', 'прямой', line);
  writeln('Плоскости заданы в общей форме: Ax+By+Cz+D=0');
  for i := 1 to 2 do
    begin
      writeln('Введите коэффициенты для ', i, ' плоскости:');
      read_v('ABC', 'плоскости', plane[i])
    end;
  for i := 1 to 2 do angle(line, plane[i], alpha[i]);
  if alpha[1] > alpha[2]
    then i := 1
    else if alpha[1] < alpha[2]
      then i := 2
      else i := 3;
  if i = 3
    then write('Углы между прямой и каждой из плоскостей одинаковы и равны ', alpha[1]:0:5)
    else write('Наибольший угол: между прямой и плоскостью ', i, ', равен ', alpha[i]:0:5);
  write(' радиан');
  readln
end.
Чтобы ввод не был уж очень громоздким, для него тоже процедуру написал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.06.2015, 11:45
Помогаю со студенческими работами здесь

Угол между плоскостями
Помогите пожалуйста решить задачку) У меня получилось что косинус угла будет равен -0,18. Если это правильно, то скажите пожалуйста какой...

Написать уравнение прямой, проходящей через начало координат и составляющей равные углы с заданными плоскостями
Написать уравнение прямой, проходящей через начало координат и составляющей равные углы с плоскостями 4y=3x, y =0, z =0 .

Найти угол между плоскостями
Через точку М(-5,16,12) проведены две плоскости одна из которых содержит ось Ox, a другая ось Oy. Найти угол между плоскостями

Найти угол между плоскостями
Найти угол между плоскостью, проходящей через точки А(1;9;2), B(-2;10;3), C(-1;0;3), и плоскостью, проходящей через точку D(1;5;4)...

Найти угол между плоскостями
Доброго времени суток! Необходима помощь с несколькими задачами. 4) Через центр O окружности, вписанной в равнобедренный прямоугольный...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru