파일 설명
//+FN +UA#
#version 3.6;
#include "colors.inc"
global_settings {
assumed_gamma 2.1
ambient_light color rgb 1
}
// ----------------------------------------
camera {
location <1.35, 1.35, 1.35>
direction 1.5*z
right x*image_width/image_height
look_at <0.0, 0.0, 0.0>
}
light_source {
<0, 0, 20>
color rgb <1, 1, 1>
area_light
x*10, y*10, 5, 5
//jitter
rotate -x*45
}
light_source {
<20, 0, 0>
color rgb <1, 1, 1>
area_light
z*10, y*10, 5, 5
// jitter
}
#declare MODE_ARMCHAIR = 1;
#declare MODE_RIBBON = 2;
#declare MODE_ZIGZAG = 3;
#macro nanoTube(mode, ba, bb, atomColor)
#local s = sqrt(3)/2;
#local b1 = max(ba, bb);
#switch(mode)
#case(MODE_ARMCHAIR)
#local bb = bb + 6;
#local r = (bb - 6)/pi;
#macro ab2Vector(b, a) <b, sin(a/r)*r, cos(a/r)*r>
#end
#break
#case(MODE_RIBBON)
#macro ab2Vector(a, b) <a, 0, b>
#end
#break
#case(MODE_ZIGZAG)
#local ba = ba + 2;
#local r = (ba*s)/pi;
#macro ab2Vector(a, b) <cos(a/r)*r, sin(a/r)*r, b>
#end
#break
#end
#macro atom(pos)
sphere {
pos, 0.2
texture {
pigment {
color rgb atomColor
}
finish{
specular 0.4
}
}
}
#end
#macro bond(from, to)
cylinder {
from, to, 0.075
texture {
pigment {
color rgb atomColor*0.5 + 0.5
}
finish{
specular 0.6
}
}
}
#end
union {
#local m = -b1;
#while (m < b1)
#local n = -b1;
#while (n < b1)
#local a0 = (n*2 + m)*s;
#local b0 = m*1.5;
#if (abs(a0) < ba & abs(b0) < bb)
union{
#if (b0 > -bb + 2)
atom(ab2Vector(a0, b0))
#end
#if (abs(b0) < bb-2)
bond(ab2Vector(a0, b0), ab2Vector(a0, b0 + 1))
#end
#if (b0<bb-2)
atom(ab2Vector(a0, b0 + 1))
#if (a0 < ba-s)
bond(ab2Vector(a0, b0 + 1), ab2Vector(a0 + s, b0 + 1.5))
#end
#if (a0 > s-ba)
bond(ab2Vector(a0, b0 + 1), ab2Vector(a0-s, b0 + 1.5))
#end
#end
}
#end
#local n = n + 1;
#end
#local m = m + 1;
#end
scale 0.08
}
#end
union {
nanoTube(MODE_ARMCHAIR, 6, 12, <1, 0, 0>)
nanoTube(MODE_ARMCHAIR, 9, 9, <0, 1, 0>)
nanoTube(MODE_ARMCHAIR, 12, 6, <0, 0, 1> )
rotate -clock*60*x
}
라이선스
나는 아래 작품의 저작권자로서, 이 저작물을 다음과 같은 라이선스로 배포합니다:
- 이용자는 다음의 권리를 갖습니다:
- 공유 및 이용 – 저작물의 복제, 배포, 전시, 공연 및 공중송신
- 재창작 – 저작물의 개작, 수정, 2차적저작물 창작
- 다음과 같은 조건을 따라야 합니다:
- 저작자표시 – 적절한 저작자 표시를 제공하고, 라이센스에 대한 링크를 제공하고, 변경사항이 있는지를 표시해야 합니다. 당신은 합리적인 방식으로 표시할 수 있지만, 어떤 방식으로든 사용권 허가자가 당신 또는 당신의 사용을 지지하는 방식으로 표시할 수 없습니다.
- 동일조건변경허락 – 만약 당신이 이 저작물을 리믹스 또는 변형하거나 이 저작물을 기반으로 제작하는 경우, 당신은 당신의 기여물을 원저작물과 동일하거나 호환 가능한 라이선스에 따라 배포하여야 합니다.
https://creativecommons.org/licenses/by-sa/3.0CC BY-SA 3.0 Creative Commons Attribution-Share Alike 3.0 truetrue이 파일이 나타내는 바에 대한 한 줄 설명을 추가합니다