Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

grasshopper_manual_rus

.pdf
Скачиваний:
249
Добавлен:
12.05.2015
Размер:
5.66 Mб
Скачать

Vector/Point/Point XYZ – выберем и перетащим компонент Point XYZ на рабочее поле

соединим первый выводимый параметр Function-r с входным значением X компонента Point

соединим второй выводимый параметр Function-r с входным значением Y компонента Point

соединим выводимый параметр Range-R с входным значением Z компонента Point

Теперь, если вы посмотрите в окно Rhino, вы увидите множество точек, образующих спираль. Вы можете менять значения двух числовых слайдеров, чтобы изменить

количество точек по спирали или длину спирали.

Curve/Spline/Curve – выберем и перетащим компонент Curve на рабочий стол

соединим выводимый параметр Point-Pt с входным параметром Curve-V

Мы создали одну кривую, которая проходит через все

точки спирали. Щелкнув правой кнопкой мыши на

вкладке Curve-D в наборе кривых степени; кривая 1 степени будет создавать прямые отрезки между каждой точкой и гарантирует, что кривая фактически проходит через каждую точку. Кривая 3 степени создаст гладкую кривую Безье, где точки спирали будут выступать в качестве контрольных точек для кривой, однако, линия не будет фактически проходит через каждую точку.

Тригонометрические Как уже было показано, мы можем использовать кривые компонент Function для оценки сложных формул, для создания спиралей и других математических кривых,

однако Кузнечик также имеет набор тригонометрических компонентов, встроенных в семью скалярных компонент.

Тригонометрические функции, такие как синус(Sin),

косинус(Cos) и тангенс(Tan) являются важными инструментами математиков, ученых и инженеров, поскольку они определяют отношение между двумя сторонах прямоугольного треугольника, содержащий конкретную угол, называемый тета(Theta). Эти функции важны в векторном анализе, который мы рассмотрим в

последующих главах. Тем не менее, мы можем также

использовать эти функции, чтобы определить периодические явления, как синусоидальные волновые функции часто встречающиеся в природе в виде морской волны, звуковые волны, а световые волны. В 1822, Жозеф Фурье, французский математик, обнаружил, что синусоидальная волна может быть использована в качестве простых строительных блоков для создания и описания практически любых периодических колебания. Этот процесс называется Фурье-анализ. В следующем примере мы создадим синусоидальную форму волны, где число точек на кривой, длина волны, частота и амплитуда могут контролироваться путем набора числовых слайдеров.

Создание определения с нуля:

Params/Special/Slider – выберем и перетащим на рабочий стол 3

числовых слайдера

выберем первый слайдер и зададим следующие параметры:

o Name: Num Pts on Curve (название – количество тчк на кривой) o Slider Type: Integers (целочисленные значения)

o Lower Limit: 1 (нижний предел) o Upper Limit: 50 (верхний предел) o Value: 40 (значение)

• выберем второй слайдер и зададим следующие параметры : o Name: Wave Length (длина волны)

o Slider Type: Integers o Lower Limit: 0

o Upper Limit: 30 o Value: 10

выберем третий слайдер и зададим следующие параметры : o Name: Frequency (название - частота)

o Slider Type: Integers (целочисленные значения) o Lower Limit: 0 (нижний предел)

o Upper Limit: 30 (верхний предел) o Value: 12 (значение)

Logic/Sets/Range – выберем и перетащим 2 компонента Range

на рабочий стол

соединим Wave Length (длина волны) слайдер с первым Range-

D входом

соединим Frequency (частота) слайдер со вторым Range-D

входом

соединим Num Pts on Curve (количество точек на кривой)

слайдер с обеими Range-N входами.

Сейчас мы создали два списка данных (Range); первый – диапазон чисел от 0 до 10 , а второй список - числа от 0

до 12.

• Scalar/Trigonometry/Sin выберем и перетащи

компонент Sin на рабочий стол

соединим второй Range-R выход со входом x компонента

Sin

Vector/Point/Point XYZ - выберем и перетащи компонент Point XYZ на рабочий стол

соединим первый Range-R выход с X входом компонента

Point XYZ

соединим выход y компонента Sin с Y входом компонента Point XYZ

Если вы посмотрите в окно Rhino, вы увидите ряд точек в виде синусоиды. С того момента как первые данные компонента Range (диапазон), будут передаваться во вход X компонента Point, без подсоединения к компоненту тригонометрической функции, значение x точек будет оставаться постоянным и равномерно распределенным. Однако, мы имеем компонент Sin (синус), который подает данные на вход Y компонента Point, поэтому видим изменения в значениях точек; которые в конечном итоге образуют волновой структуру. Теперь можно изменяя значения числовых ползунков изменять форму волновой структуры.

• Curve/Spline/Interpolate – выберем и перетащим на рабочий стол компонент Interpolated Curve

• соединим выход Point-Pt со входом Curve-V

На этом момент, ваша схема должна выглядеть как скриншот ниже. Мы создали наше определение использовав Num Pts on Curve, Wave Length, and Frequency sliders, но мы пока не можем управлять амплитудой синусоиды.

Params/Special/Slider – выберем и перетащим еще один number slider на рабочий стол

щелчком правой кнопкой мыши зайдем в меню и введем следующие настройки:

o Name: Amplitude (название - амплитуда)

o Slider Type: Floating Point (плавающее значение тчк) o Lower Limit: 0.1 (нижний предел)

o Upper Limit: 5.0 (верхний предел) o Value: 2.0 (значение)

Scalar/Operators/Multiplication - выберем и перетащим компонент Multiplication (умножение) на рабочий стол

соединим слайдер Amplitude со входом Multiplication-A

соединим выход-У компонента Sin с входом

Multiplication-B

соединим выход Multiplication-r с входом-Y компонента

Point XYZ

Это соединение должно заменить существующие связи,

Sin. Слайдер Amplitude - просто умножение значений Sin по шкале факторов. Слайдер управляет Y-значениями нашей синусоиды, когда вы увеличиваете значение амплитуды вы, в свою очередь, увеличивает амплитуду кривой.

Vector/Point/Point XYZ – выберем и перетащим компонент Point XYZ на рабочий стол

соединим первый выход Range-R со входом X новой точки Point XYZ

Curve/Primitive/Line – выберем и перетащим на рабочий стол компонент Line

соединим первую точку Point-Pt со входом Line-B

соединим вторую точку Point-Pt со входом Line-A

В последней части описания, мы создали второй набор равномерно расположенных вдоль оси Х точек, которые соответствуют значениям X-координаты кривой синус.

Компонент Line создает отрезок кривой между первым списком точек, которые создают синусоиду и втором списком точек, которые определяют ось Х. Новая линия дает визуальное представление о вертикальных перемещениях в структуре формы волны.

Простые примеры использования математических

функций

Мы показали, как создать синусоиду волны, однако вы можете генерировать другие синусоидальные кривые, как косинус или тангенс, путем замены компонента синус косинус или тангенсом которые вы найдете во вкладке

Scalar/Trigonometry.

Создание параметрической окружности.

-Выберем и перетащим на рабочий стол числовой ползунок (Param/Special/NumericSlider), который задает количество опорных точек для окружности

-компонент Range (Logig/Sets/…) сформирует диапазон точек (ареал распространения по умолчанию от 0 до1)

-компонент Function (Logic/Script/…) со значением 2Pi*x

означает, что диапазон чисел будет от 0 до 2 Pi и опишет полный круг.

-компоненты Sin и Cos (Scalar/Trig/…) зададут угловую

координату точек

-компонент Pt XYZ сформирует структуру круга

3 урок

Геометрические структуры (узоры) являются одними из

захватывающих экспериментов с генеративными алгоритмами

 

Кузнечика. Мы имеем потенциал для создания мотивов и затем

Геометрические

его распространения в качестве шаблона, который может быть

структуры

использован в как основа для других продуктов проектирования и

 

оформления. В случае разработки структуры-паттерна мы

 

должны иметь концептуальный взгляд на наш проект/модель, что

 

бы суметь извлечь простую геометрию, который производит всего

 

целую форму пока идут повторения. Итак, для создания основной

 

геометрии мы должны скопировать созданный нами паттерн

 

столько сколько это потребуется.

 

 

 

 

Геометрическая структура Мечети Шейха Лотфолах (Исфахан, Иран) выложенная изразцами, имеющих структуру простого паттерна, который создается простыми математико-геометрическими вычислениями.

К примеру, решили мы создать простой паттерн некоторым пересечением линий, нарисовали скетч.

Простой линейный паттерн

Начнем с того, что выберем и перетащим на рабочий стол компонент Series (Logic/Sets/Series), который будет контролировать количество точек и размер шага между ними, а их значение будет задаваться числовыми слайдерами с соответствующими названиями.

-Компонент Function (функция) определяет угловую координату наших точек (y=-x/3; y=x; y=x/3; y=x+(x/3)),

значение x задает числовой слайдер.

-Компоненты Point XYZ создадут четыре набора точек связанные значением Series, которое контролирует количество точек и расстояние между ними.

-для создания «зиг-заг» линии между точками нам нужно

отсортировать их компонентом Cull Pattern с фильтром

True/False и False/True и затем соединить их.

- После того как все четыре набора точек отсортированы

их нужно «слить» в четыре потока, в этом нам поможет

компонент Merge (Logic/Stream/Merge)

Если полученные потоки соединить поли линией, то мы не получим желаемый результат, т.к. программа не понимает в какой последовательности их соединять.

Потоки нужно проанализировать и отсортировать в нужном нам порядке.

В получившейся структуре значения У остаются не измены, а Х постепенно увеличивается…как выбрать подходящие нам по номеру точки? Для этого нужно выделить из потока координату Х для интересующих нас точек.

-Компонент Decompose (Vector/Point/…) выделит X коорд.

-Компонент Sort (Logic/List/…) отсортирует компоненты по значению Х координаты.

-Компонент Poly Line (Curve/Spline/PolyLine) отобразит интересующий нас результат

-для отображения полученного рисунка на сцене, выделяем компоненты PLine и нажмем Bake Selected («испечь» выделенное)

Круглая структура (паттерн)

Отправной точкой этой структуры является набор данных, который производит группу точек расположенных по кругу. Этот набор данных может быть масштабирован относительно центра и с помощью него можно создать несколько групп вокруг одного центра. Они будут отобраны нами тем же образом, как и в предыдущем примере. Затем мы сгенерируем повторяющиеся 'Зиг-Заг' шаблон из этих масштабированных «звезд». Дублирование этих звезд создает определенный мотив, а с использованием различных сочетаний моделей Cull можно сделать его более интересным.

При условии, что группа точек находится в диапазоне от 0 до 2Pi и использует функции Sin и Cos. Первый числовой слайдер задает количество точек, второй изменяет радиус круга.

Увеличение значения функции Sin/Cos на числовым слайдере создает набор точек большего радиуса.

Для того, чтобы отсортировать точки, мы можем просто использовать компонент Cull pattern с фильтром значений True / False, как в предыдущем примере. Но как нам правильно отсортировать списки точек, ведь если мы подсоединим отсортированные точки поли линией мы не получим форму звезды. Здесь лучше отсортировать

элементы по их порядковому номеру в

последовательности. Так как точки были сгенерированы компонентом <range>, здесь нам понадобится компонент <series> для снабжения точек в списке индексами. N параметр фактора <range> определяет число шагов диапазона, при этом <range> производит N+1 шаг. И нам нужно значение <series> с N + 1 шагом индексов точек и отобрать и отсортировать эти моменты на основе их показателей (на рис. показано генерирование индексов номеров точек).

Нам необходимо отобрать точки с одинаковыми показатели и объединить их вместе. Хотя результат слияния для <series> может быть вновь целочисленный

набор данных, и поэтому мы сортируем и индексами и

«ключами». Единственная вещь, которую остается сделать это подключить компонент Poly Line.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]