수식
일반
수식 스플라인 및 수식 디포머에 대해 수식을 입력할 수 있습니다. 사실 여러분은 속성 관리자 등과 같이 CINEMA 4D가 값을 받는 곳에서 수식을 입력할 수 있습니다. 다음 부록은 수식에 사용될 수 있는 모든 단위, 연산자 함수 및 상수를 목록화 합니다. 아래의 목록 중 어느 것 (괄호 안의 예제)을 이용하여 값을 입력할 수 있습니다. - 이때 환경 설정에서 정의된 기본 단위에 상관없습니다. (CINEMA 4D는 단위를 변환해줄 것입니다).
mod(a;b)와 같은 수식을 다룰 때는 세미클론이나 [] 사각 괄호로 구분할 수 있습니다(그러면 일반 괄호는 필요없습니다.)
rnd(100)은 rnd[100]와 같으며 rnd(100,234)은 rnd([100][234])와 같습니다.
Mathematical Operators
+ |
Addition |
144+14 = 158 |
- |
Subtraction |
144-14 = 130 |
* |
Multiplication |
144*2 = 288 |
/ |
Division |
144/12 = 12 |
( |
Left parenthesis |
3+4*2 = 11 |
|
|
|
Units
km |
Kilometer |
1km = 1000m |
m |
Meter |
144-14 = 130 |
cm |
Centimeter |
1cm = 0.01m |
mm |
Millimeter |
1mm = 0.001m |
um |
Micrometer |
1um = 0.000001m |
nm |
Nanometer |
1nm = 0.000000001m |
mi |
Mile |
1mi = 1609.344 m |
yd |
Yard |
1yd = 0.914m |
ft |
Foot |
1ft = 0.305m |
in |
Inch |
1in = 0.025m |
B |
Frame Number |
|
Logical Operators
= |
Equal compare |
1km = 1000m |
== |
Equal compare |
144-14 = 130 |
> |
Greater than |
1cm = 0.01m |
< |
Less than |
1mm = 0.001m |
>= |
Greater than or equal compare |
1um = 0.000001m |
<= |
Less than or equal compare |
1nm = 0.000000001m |
!= |
Not equal compare |
1mi = 1609.344 m |
! |
Not |
1yd = 0.914m |
|| or. or |
Or |
1ft = 0.305m |
&& or. and |
And |
1in = 0.025m |
& |
Bitwise and |
|
| |
Bitwise or |
|
^ |
Bitwise xor |
|
~ |
Bitwise not |
|
?(a;b) |
Condition, if statement: a, then b
|
(3>4)?(10;20) = 20; kann ebenfalls so
formuliert werden: if(3>4;10;20) |
|
Constants
e |
The constant e (Euler Number) = 2.71828 |
|
pi |
The constant Pi (circular number) = 3.14159 |
|
pi05 |
Half Pi |
|
pi2 |
Double Pi |
|
piinv |
Inverse Pi |
|
pi05inv |
Half inverse Pi |
|
pi2inv |
Double inverse Pi
|
|
Functions
sin(a) |
Sinus |
|
cos(a) |
Cosinus |
|
acos(a) |
Arcus cosinus |
|
asin(a) |
Arcus Sinus |
|
tan(a) |
Tangent |
|
atan(a) |
Arcus tangent |
|
cosh(a) |
Cosinus hyerbolicus |
|
sinh(a) |
Sinus hyerbolicus |
|
tanh(a) |
Tangent hyerbolicus |
|
floor(a) |
Round down |
floor(11.8) = 11 |
ceil(a) |
Round up |
ceil(11.2) = 12 |
round(a) |
Rund |
round(11.8) = 12 |
abs(a) |
Absolute / Value |
abs(-11) = 11 |
sqr(a) |
Square exponentation |
sqr(5) = 25 |
sqrt(a) |
Square root |
sqrt(49) = 7 |
exp(a) |
Exponential function |
exp(5) = 148.41 |
log10(a) |
Logarithm to the base of10 |
log10(100) = 2 |
log(a) |
Logarithm to the base of e |
log(e) = 1 |
trunc(a) |
Truncates a number |
trunc(-11.8987) = -11 |
rnd(a{;b}) |
Random or 0 and a, opt. b as seed |
|
pow(a;b) |
Exponentation |
pow(2;3) = 8 |
mod(a;b) |
Modulo |
mod(10;4) = 2 |
clamp(a;b;c) |
Clamps val. of c or a & b |
clamp(2;6;10) = 6 |
min(a;b) |
Minimum value a or b |
min(4;7) = 4 |
max(a;b) |
Maximum value a or b |
max(4;7) = 7 |
(a)<<(b) |
Bitweise shift to left |
1<<4 = 16 |
(a)shl(b) |
Bitweise shift to left |
1<<4 = 16 |
(a)>>(b) |
Bitweise shift to right |
1000>>4 = 16 |
(a)shr(b) |
Bitweise shift to right |
1000>>4 = 16 |
len(a;b{;...}) |
Vector length |
len(1;1) = 1.414
|
|
다음 단락에서 다중 선택시 사용할 수 있는 특수한 변수도 있습니다.
다수의 선택에 확장된 수식 입력
선택한 복수의 오브젝트에 상대값을 주어 이동, 스케일, 회전시킬 수도 있습니다.
예를 들어 구가(100, 0, 0)의 위치에 있고, 큐브가(300, 0, 0)의 위치에 있다고 합시다. 그리고 두 오브젝트를 선택해 속성 관리자의 좌표 탭에서 P.X 필드에 x + 100이라고 입력해 봅니다.
그러면 선택한 2개의 오브젝트는 각각 X 방향으로 100만 이동할 것입니다. 이때 P.X 필드에 수치는 표시되지 않고 얇은 청색이 되어 있습니다. 또 이 필드에 sin(x) + sqr(x*324)와 같이 x를 사용한 수식을 입력할 수도 있습니다. 여기서 x는 선택된 각 오브젝트의 개별값을 나타내고 있어 각 오브젝트마다 이 수식이 실행됩니다.
다음의 변수가 사용 가능합니다:
x:파라미터의 기존 값을 나타냅니다.
num:순차적으로 증가하는 값을 나타냅니다. 선택된 엘리먼트/오브젝트가 넘버링됩니다.
tot:선택된 엘리먼트 / 오브젝트의 합계수입니다.
rnd(value): 0에서 "value” 사이의 값을 랜덤 수치로서 사용합니다.
예제
-
각각 X위치 값이 100, 200, 300인 3개의 구가 있습니다. 세 구를 동시에 선택해서 P.X 필드에 x+200을 입력하면 각 구체는 각각 300, 400, 500미터의 위치에 배치됩니다.
-
10개의 광원:광원의 강도를 0에서 20씩 밝기가 증가하게 설정하고 싶다고 합니다. 모든 광원을 선택해 강도 필드안에 num*20으로 입력합니다.
-
10개의 광원의 강도를 200 이하에서 랜덤하게 설정하려 합니다:모든 광원을 선택하고 강도 필드안에 x+rnd(200)이라고 입력합니다. 광원 처음 값이 강도 0을 가지고 있었을 경우에는 합계치 200의 범위내에서 각각 랜덤인 강도가 주어집니다.
-
28개의 큐브의 필렛 반경을 0에서 100까지 같은 간격으로 설정하고 싶습니다:모든 큐브를 선택해서 필렛 반경 필드안에 100*(num/(tot-1)) 라고 입력해 주세요.
큐브의 필렛의 반경이 균일하게 확대되었습니다.
팁:이 방법을 사용해 칼라의 값을 정의하고 싶은 경우에는 우선 칼라 파라미터에서 오른쪽 클릭합니다. 오른쪽 클릭 메뉴에서 서브 채널 표시 커맨드를 선택합니다. 서브 채널에서 동일한 방법으로 설정합니다.
유닛 (단위)
어떤 프리셋 값에서도 독립하여 사용자 값을 입력시킬 수 있습니다.
팁:만약 예를 들어 환경 설정의 기본 유닛을 미터에서 미리미터로 변경하면 단지 표기 단위만 변경되고 단위를 감한한 정확한 수치 값으로 변경되지는 않습니다. 즉 오브젝트의 폭이 10 미터라면 단위를 밀리미터로 변경해도 오브젝트의 폭은 10 미리미터가 됩니다. 만약 오브젝트의 스케일을 단위 변경에 따라 바꾸고 싶다면 모든 오브젝트를 그룹화 시키고 좌표 관리자상에서 그룹을 스케일 변경합니다.
함수
팁:함수 인자들은 괄호 안에 있어야 합니다. 열린 괄호 수와 닫힌 괄호 수는 동일해야 합니다. 함수는 괄호로 묶여야 합니다: sin(sqr(exp(pi)))
삼각 함수 인자는 항상 각도로서 처리됩니다. 따라서 sin(2*pi)를 입력하면 360°의 사인으로 계산되지 않고 6.283°에 가깝습니다.
일반
스플라인 또는 수식 타임 커브를 위해 수식을 입력할 때 삼각함수에 라디안을 사용하면 다툼이 발생합니다. 파라미터 텍스트 박스에 값을 입력할 때 삼각 함수는 항상 도를 사용합니다.
함수 분석자는 산수 연산을 가장 중요하게 인식합니다. 연산 기호를 자유롭게 조합할 수 있습니다. 예: 2km + exp(sin(4mm*pi)) / ((sin(14cm))^2 + (cos(14cm))^2).