Гурский Д., Турбина Е. - Вычисления в MathCad 12 (1077322), страница 52
Текст из файла (страница 52)
В общем случае при таком освещении интенсивность све-6.2. 30-графики• 223тового потока, падающего на каждую точку малой, расположенной перпендикулярно линии, соединяющей ее центр и источник, площадки, будет одинаковым. При таком освещении проявляются эффекты теней и полутеней, однако нетбликов.Specular Color (Зеркальный свет). Эффект освещения, получаемого от источника,расположенного на сопоставимом с размером поверхности расстоянии. Примериз жизни — прожектор освещения в театре.
Свет падает круглым пятном, причем интенсивность его уменьшается от центра к краям. При этом для хорошо отражающих свет объектов проявляется такой оптический эффект, как блик. Степень яркости заливки поверхности определяется параметром Shininess (Яркость)вкладки Advanced (Дополнительные). По умолчанию освещение таким типомсвета не производится. Чтобы его задействовать, замените черный цвет в палитре рассматриваемого параметра на любой другой.ffРис. 6.58.
Типы источников света•Infinite Light Source (Бесконечно удаленный источник света). Этот параметр отвечает за проявление эффектов, связанных с бесконечным удалением источника света.Определяет освещение диффузным светом.•Определить схему расположения источников света можно в списке параметраLighting Scheme (Схема освещения).Вкладка Title (Заголовок)За задание заглавия графика отвечают параметры вкладки Title (Заголовок).Поместить название можно либо выше (Above), либо ниже (Below) поверхности. В томслучае, если отмечен параметр Hide (Спрятать), название не отображается.Быстрое редактирование вида поверхности можно также провести с помощью ее контекстного меню (вызывается щелчком правой кнопкой мыши на области графика),которое содержит несколько наиболее важных параметров отображения.6.2.3.
Интересные поверхностиЗаканчивая разговор о построении и форматировании ЗО-графиков, рассмотрим несколько примеров оригинальных поверхностей, задаваемых с помощью систем параметрических уравнений. При изучении примеров обратите внимание на то, каких удивительных графических эффектов можно добиться, искусно используя возможностиMathcad в визуализации трехмерных объектов.2 2 4 •:• Глава 6. ГрафикиЛента МебиусаЛента Мебиуса является простейшей односторонней поверхностью, впервые описанной в 1865 году профессором Лейпцигского университета Августом Мебиусом. Получается она при склеивании двух противоположных сторон прямоугольника, одна изкоторых перевернута. Лента Мебиуса (рис.
6.59) обладает замечательными свойствами: двигаясь по ее поверхности вдоль края в одном направлении, всегда попадаешьв исходную точку, но в обращенном положении относительно предыдущего; если жеразрезать ленту Мебиуса но средней линии, мы получим не две части, а новую поверхность, аналогичную поверхности цилиндра, но перекрученную два раза вокруг себя.cos(u) + v-cos| — |-cos(u)Moebius_band(u,v) :=sin(u) + v-cos| — I sin(u)uv-sin| —2CreateM.esh(Moebius_band,-5,2,-0.1,0.1,40,40)Рис.
6.59. Лента МебиусаПоверхность БояПоверхность Боя (рис. 6.60) — типичный представитель класса односторонних поверхностей (к которому, в частности, относится и знаменитая бутылка Клейна), которые невозможно отобразить в трехмерном пространстве без линий самопересечения (без самопересечения такие поверхности можно представить только в четырехмерном пространстве).(cos(u)-cos(2-v) + ^/2-sin(u)-cos(v))-cos(u)\fi~Boy's surface(u,v) :=sin(2-u)-sin(3-v)(cos(u)-sin(2-v) - y2-sm(u)-sin(v))-cos(u)P~" ~~ ГV2-sin(2u)-sin(3-v))- sin(2u) sin(3v)6.2. 30-графики * 2 2 5CreateMesh(Boy's_sutface,0,2,-n,w,100,100)Рис. 6.60.
Поверхность БояСплетенная трубкаСплетенная трубка представлена на рис. 6.61.а:=5b := 1.25с:=2m:=3n := 5(а + b-cos(o)+ csin(nv|/))cos(mv|/)Knotted_tube(e,v(/):= (а + bcos(0)+ c-sin(n-y))sin(m\)/)b-sin(9) + c-cos(n-\|/)CreateMesh(Knotted_tube ,0,10,0,10,200,200)Рис. 6 . 6 1 . Сплетенная трубкаРакушкаРакушка представлена на рис. 6.62.а:=0.2Ь:=1с:=0.1п:=22 2 6 •:• Глава 6. Графикиfv>•| 1-cos(n-v)-(l + cos(u)) + c-cos(n-v)•H)"2л )Shell(u.v) :=sin(n-v)-(l + cos(u)) + c-sin(n-v)Vib — + a- 12лlV|sin(u)2л.CreateMesh(Shell,0,7,0,6,100,100)Рис.
6.62. РакушкаБольшое количество примеров самых необычных, поражающих воображение поверхностей вы можете найти по адресу http://www.mathcad.com/resources/gallery/, а такжев электронной книге Creating Amazing Images with Mathcad (Создание удивительныхизображений в Mathcad), которую можно скачать со страницы http://www.mathcad.com/library/ebooks/images.asp.6.2.4. Построение многогранниковПрактически всем из нас в школе или вузе приходилось выполнять чертежи многоугольников, к примеру, при решении тех же задач по геометрии. Описать такие пространственные фигуры, как куб, пирамида или октаэдр с помощью уравнения или системы уравнений практически невозможно. Следовательно, их нельзя построить в системе Mathcadс помощью стандартных методов. Однако упростить себе работу, связанную с выполнением чертежей, все же возможно благодаря тому, что в программу встроено средствополучения большинства встречающихся на практике многогранников.Чтобы построить многогранник (рис. 6.63), следует использовать специальную функцию Polyhedron(S), где S — это либо порядковый номер, либо название, либо код (такназываемый Wythoff-символ).Проще всего можно построить нужный вам многогранник, используя его порядковыйномер.
Для этого введите соответствующее число в виде строки (то есть его нужно взятьв кавычки), поставив перед ним символ номера (#). Учитывая то, что всего встроенных многогранников 80, то и вводимое число должно лежать между 1 и 80 (см. рис. 6.63).6.2. 30-графикиPolyhedron("#r)Polyhedton("#2")Polyhedron("#3")P olyhe dron( "04")Polyhedron("ft5")Polyhedron("#6")Polyhedron("#7")Polyhedron("#8")* 227Рис. 6.63. Восемь первых многогранников, имеющихся в системе MathcadБолее глубокие знания (по крайней мере, в английском языке) требуются для построения многогранника по его названию. А самостоятельно написать код (Wythoff-symbol)смогут лишь специалисты. Впрочем, получить подобного рода информацию можно,используя специальную функцию PolyLookup (S). Аналогично функции Polyhedron(S),в ее скобки можно ввести как порядковый номер, так и код или название.
Как результат функция PolyLookup (S) выдает вектор, содержащий информацию о многограннике:варианты названия и код. Пример использования данной функции, а также построения по полученным данным многогранника, приведен на рис. 6.64."small ditrigonal icosidodecahedron"PolyLookup("#35") ="small triambic icosahedron""315/2 3"P olyhe dron(" small ditrigonal icosidodecahedron") P olyhe dron(" 3|5/2 3")Рис.
6.64. Использование функции PolyLookup (S)Все основные возможности оформления трехмерных графиков могут быть примененыи для многогранников. Особенно эффектным оказывается применение к ним графических фильтров освещения.2 2 8 •:• Глава 6. ГрафикиНаиболее значительной трудностью при построении многогранников является то, чтодовольно проблематично узнать, какой порядковый номер имеет нужный вам объект.Конечно, можно просто просмотреть все 80 встроенных многогранников, однако на этоможет потребоваться слишком много времени. Для наиболее простых и известныхфигур (например, куба или тетраэдра) английское название можно найти в словаре.
Ночто делать, если нужно построить, например, пятиугольную призму (термин, подобныйэтому, не будет переведен правильно почти наверняка, даже при использовании самыхсовременных переводчиков). В таком случае вам следует обратиться к Ресурсам Mathcad(Mathcad Resources). Зайдите в раздел Reference Tables (Справочные таблицы), затем в группе статей Geometry (Геометрия) выберите статью Polyhedra (Многогранники). В ней вынайдете изображение и краткую информацию обо всех многогранниках, имеющихсяв Mathcad. Значительно облегчит поиск то обстоятельство, что все многогранники разбиты на группы исходя из принятой в геометрии классификации.6.2.5. Построение векторного поляХотя векторное поле формально и относится к трехмерным объектам, его вид, а главное, физический и математический смысл сильно отличаются от той же поверхности.К тому же векторное поле задается по совершенно другим правилам, чем все остальные трехмерные графики.
Поэтому мы рассмотрим его построение в качестве отдельной темы.Чтобы лучше понять принципы, лежащие в основе задания векторного поля, изучимэтот вопрос, решая какую-нибудь конкретную задачу. Построим, например, векторноеполе напряженности электростатического поля, создаваемого точечным зарядом.Прежде всего, приступая к решению поставленной задачи, требуется задать все константы, которые будут нами использованы. В данном случае это величина точечногозаряда и электрическая постоянная:q:=10"5Е 0 :=8.854187818-1(Г 12Размерности констант лучше не использовать, так как они, не меняя ничего в самомграфике, могут создать дополнительные трудности в ходе его задания.Далее сформулируем закон, на основе которого должно быть построено векторноеполе.
По известной физической формуле, напряженность электрического поля определяется формулой:И-огЕсли принять условие, что заряд находится в точке начала координат, то данную формулу можно переписать:Е(х,у) :=14я б0пq22х +уАналогично заданию поверхности, теперь следует задать сетку разбиений, в узлах которой будут прорисованы соответствующие векторы поля.
Сделать это проще всегос помощью ранжированных переменных, причем никаких отличий выполнения этойзадачи для векторного поля от рассмотренных нами ранее нет. Единственное, шаг должен быть задан довольно большим: иначе векторы просто сольются.6.2. 30-графики:~~2Xend:~2Y•xstart"N:=lli:=0.. NXY•229end:=2M:=llj:=O..MXend ~ start .YXX~ start +i,j:=4Xi'yJC°41:=YSV'j/fi.JVV'j/endYstart•Jyj start3 l aN"J"MЧтобы легче понять дальнейшие шаги построения, разберемся, что такое векторноеполе в принципе.