/
gmn
/
projective_geometry
Обзор
Документация
Войти
/
gmn
/
projective_geometry
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/reflection02.asy
42 строки
1 KB
Gevorkyan M. N.
init
16 июл 2026, 18:13
16 июл 2026, 18:13
7f048a8
Код
Авторство
О чём код?
include "transforms/base.asy"; // Настройки отображения include "pens.asy"; include "default.asy"; locale("ru_RU.UTF-8"); unitsize(3cm); import three; import graph3; pen dot_pen = 0.8mm+black; pen dashed_pen = dashed+0.25+black; currentlight = nolight; currentpen = 0.5bp+black; triple n = Z; triple p = dir(colatitude=50, longitude=90); triple O = (triple)eo; triple p_pn = project(p, n); triple p_on = p - p_pn; Plane plane = Plane(n, d=0); transform3 Rf = reflect(plane.n, 0); draw(plane, meshpen=0.5+black, su=1.8, sv=1, surfacepen=surface_blue); draw(O--n, arrow=Arrow3(size=5), L=Label("$\vb{n}$", position=EndPoint, align=W)); draw(O--p, arrow=Arrow3(size=5, position=Relative(0.98)), L=Label("$\vb{p}$", position=EndPoint, align=E)); draw(O--p_pn, arrow=Arrow3(size=5), L=Label("$\vb{p}_{\parallel}$")); draw(O--p_on, arrow=Arrow3(size=5), L=Label("$\vb{p}_{\perp}$"), align=N); draw(p--p_pn, p=dotted); draw(p--p_on, p=dotted); draw(Rf*p--p_on, p=dotted); draw(Rf*p--Rf*p_pn, p=dotted); // Отраженные векторы draw(O--Rf*p, p=deepred+0.5bp, arrow=Arrow3(size=5, position=Relative(0.98)), L=Label("$\vb{p}^{\prime}$", position=EndPoint, align=E)); draw(O--Rf*n, p=deepred+black+0.5bp, arrow=Arrow3(size=5), L=Label("$\vb{n}^{\prime}$", position=EndPoint, align=W)); draw(O--Rf*p_pn, p=deepred+black+0.5bp, arrow=Arrow3(size=5), L=Label("$\vb{p}^{\prime}_{\parallel}$", align=W));