Link Search Menu Expand Document

3d scatter chart


3d scatter chart 객체에 대하여 설명합니다. enuSpace는 OpenGl엔진을 이용합니다.

3d scatter chart Properties

아래의 테이블의 속성정보는 스크립트상에서 연계되는 속성 이름과 데이터 타입정보 입니다.

PropertyTypeDescriptionValue
diffuseColorstring객체의 color 속성“rgb(0,0,0)”, “#000000”
emissiveColorstring객체의 발광 color 속성“rgb(0,0,0)”, “#000000”
specularColorstring객체의 highlight color 속성“rgb(0,0,0)”, “#000000”
ambientlntensityfloat객체의 라인 투명도 속성0~1
shininessfloat객체표면의 광택의 강도0~1
transparencyfloat객체의 투명도 속성value
translation_xdouble객체의 X축 위치value
translation_ydouble객체의 Y축 위치value
translation_zdouble객체의 Z축 위치value
rotation_xfloat객체의 X축 회전값value
rotation_yfloat객체의 Y축 회전값value
rotation_zfloat객체의 Z축 회전값value
scale_xfloat객체의 X 확대율value
scale_yfloat객체의 Y 확대율value
scale_zfloat객체의 Z 확대울value
center_xfloat객체의 X축 중앙점value
center_yfloat객체의 Y축 중앙점value
center_zfloat객체의 Z축 중앙점value
solidbool면 채우기true, false
size_xfloat객체의 x축 크기value
size_yfloat객체의 y축 크기value
heightfloat객체의 z축 크기value
grid_visibleboolgrid 표시를 결정한다visible, hidden
outline_visiblebool외곽선표시를 결정한다visible, hidden
xyaxis_visibleboolx,y축 라벨 표시를 결정한다visible, hidden
zaxis_visibleboolz축 라벨 표시를 결정한다visible, hidden
axis_x_minfloatx축의 최소 값value
axis_x_maxfloatx축의 최대 값value
axis_y_minfloaty축의 최소 값value
axis_y_maxfloaty축의 최대 값value
axis_z_minfloatz축의 최소 값value
axis_z_maxfloatz축의 최대 값value

3d series Properties

PropertyTypeDescriptionValue
idstring시리즈 idvalue
typestring시리즈의 종류point, stem, bar, line
symbolstring심볼의 종류none, point, rect, triangle
symbol_colorstring심볼의 색상rgb(0,0,0) or #ffffff
symbol_opacityfloat심볼의 투명도0~1
symbol_sizefloat심볼의 사이즈value
label_visiblebool라벨값 디스플레이 여부true, false
data_formatstring시리즈 데이터 포맷정보xyz, xyzw, xyzl
elevationTypestring데이터 가시화 방법none, color, volume, color+volume
minElevationfloat데이터 가시화 최소값value
maxElevationfloat데이터 가시화 최대값value
colorElevationstring데이터 가시화 색상표rgb(10,50,120);rgb(15,75,165)
volumeElevationstring데이터 가시화 볼륨 사이즈2,5

ScatterChart엘리먼트 하위에는 Series엘리먼트를 포함한다. Series엘리먼트는 데이터를 가시화하기 위한 데이터 값 및 속성을 값을 갖는다.

Series의 type은 point, stem, bar를 설정한다.

point : 데이터의 정보를 점 형태로 표현

stem : 데이터의 정보를 z축방향의 라인을 이용하여 표현

bar : 데이터의 정보를 사각형 바를 이용하여 표현

line : 데이터의 정보를 라인 형태로 표현

symbol의 속성은 none, point, rect, triangle에 대하여 설정할 수 있다.

심볼의 색상, 사이즈, 투명도를 설정할 수 있다.

labelvisible의 속성은 데이터를 심볼상단에 표시한다. label_visible 속성은 data_format의 정보와 상관관계를 갖는다.

data_format의 속성값 xyz로 지정하였을 경우 (fx, fy, fz)의 데이터를 구조를 갖는다.

[주] fx, fy, fz의 값은 좌표값이 아닌 데이터 x, y, z의 값이다.

data_format의 속성값 xyzw로 지정하였을 경우 (fx, fy, fz, fw)의 데이터를 구조를 갖는다.

data_format의 속성값 xyzl로 지정하였을 경우 (fx, fy, fz, label)의 데이터를 구조를 갖는다.

label_visible의 true로 설정하였을 경우, data_format이 xyzw로 설정시 fw의 값을 디스플레이한다. 만약 xyzl의 데이터 포맷인 경우에는 입력데이터의 라벨정보를 디스플레이한다.

elevationType의 속성값에 따라 색상표현 및 심볼의 볼륨 사이즈를 지정한다. 총 4가지의 타입을 지정할 수 있다.

none : 시리즈의 기본 속성을 따라 데이터를 가시화한다.

color : 사이즈 정보는 기본 속성이 적용되며, 색상값은 minElevation, maxElevation, colorElevation의 지정값에 따라 가시화한다.

volume : 색상값은 기본 속성이 적용되며, 볼륨의 사이즈 정보 minElevation, maxElevation, volumeElevation의 정보에 따라서 가시화한다.

color+volume : 색상값은 minElevation, maxElevation, colorElevation의 지정값에 따라 가시화되며, 볼륨의 사이즈 정보 minElevation, maxElevation, volumeElevation의 정보에 따라서 가시화한다.

Script Example

스크립트는 lua스크립트와 javascript를 이용하여 적용할 수 있습니다.

객체의 속성을 설정하는 방법에는 직접 객체의 변수에 접근하여 적용하는 방법이 있습니다. 직접 변수에 접근하고자 할 경우에는 위 테이블의 속성이름을 통하여 접근을 수행합니다.

스크립트를 X3D노드에서 추가하였을 경우에는 해당객체의 ID와 속성을 통하여 스크립트를 작성합니다.

lua Script

function _onmousedown()

    --TODO Add your lua script code here
    Series1.data = "(37,9,67,67);(5,0,91,91);(27,27,58,58);(69,83,72,72);(48,20,74,74);(46,45,94,94);(74,10,59,59);(38,73,60,60);(57,36,15,15);(22,42,80,80)"
    Series1.type = "stem"
end
function _onmousedown()

    --TODO Add your lua script code here
    ID_CHART.Series1.data = "(37,9,67,67);(5,0,91,91);(27,27,58,58);(69,83,72,72);(48,20,74,74);(46,45,94,94);(74,10,59,59);(38,73,60,60);(57,36,15,15);(22,42,80,80)"
    ID_CHART.Series1.type = "bar"
end

javascript

function _onmousedown()
{    
    //TODO Add your javascript code here
    var data = "(37,9,67,67);(5,0,91,91);(27,27,58,58);(69,83,72,72);(48,20,74,74);(46,45,94,94);(74,10,59,59);(38,73,60,60);(57,36,15,15);(22,42,80,80)";
    ID_CHART.Series1.data = data;
    ID_CHART.Series1.type = "stem";    
}

enuSpace의 속성 윈도우

enuSpace 스튜디오를 통하여 객체의 편집 및 속성정보를 확인할 수 있습니다.

X3D Tag 예시

객체의 내부에 추가된 스크립트와 x3d루트에 추가된 스크립트는 아래 스크립트 예시와 같이 적용됩니다.

<?xml version="1.0" encoding="UTF-16" ?>
<x3d
>
    <script
        type="text/lua"
    >
            <![CDATA[function _onmousedown()

    --TODO Add your lua script code here
    ID_CHART.Series1.data = "(37,9,67,67);(5,0,91,91);(27,27,58,58);(69,83,72,72);(48,20,74,74);(46,45,94,94);(74,10,59,59);(38,73,60,60);(57,36,15,15);(22,42,80,80)"
    ID_CHART.Series1.type = "bar"
end]]>
    </script>
    <Scene
    >
        <Transform
            rotation="0.000000,0.000000,0.000000"
            scaleOrientation="0.000000,0.000000,1.000000,0.000000"
            translation="-50.000000,-50.000000,2.000000"
        >
            <Shape
                id="ID_CHART"
            >
                <script
                    type="text/lua"
                >
                        <![CDATA[function _onmousedown()

    --TODO Add your lua script code here
    Series1.data = "(37,9,67,67);(5,0,91,91);(27,27,58,58);(69,83,72,72);(48,20,74,74);(46,45,94,94);(74,10,59,59);(38,73,60,60);(57,36,15,15);(22,42,80,80)"
    Series1.type = "stem"
end]]>
                </script>
                <Appearance
                >
                    <Material
                        ambientIntensity="0.200000"
                        shininess="0.200000"
                        transparency="1.000000"
                        diffuseColor="0.800000,0.800000,0.800000"
                        emissiveColor="0.000000,0.000000,0.000000"
                        specularColor="0.000000,0.000000,0.000000"
                    >
                    </Material>
                </Appearance>
                <ScatterChart
                    size="100.000000,100.000000"
                    height="100.000000"
                    grid_visible="hidden"
                    outline_visible="visible"
                    xyaxis_visible="visible"
                    zaxis_visible="visible"
                    axis_x_min="0.000000"
                    axis_x_max="100.000000"
                    axis_y_min="0.000000"
                    axis_y_max="100.000000"
                    axis_z_min="0.000000"
                    axis_z_max="100.000000"
                >
                    <Series
                        id="Series1"
                        type="bar"
                        symbol="point"
                        symbol-color="rgb(255,0,0)"
                        symbol-opacity="0.800000"
                        symbol-size="5"
                        label-visible="visible"
                        format="xyzw"
                        elevationType="color+volume"
                        minElevation="0.000000"
                        maxElevation="100.000000"
                        colorElevation="rgb(10,50,120);rgb(15,75,165);rgb(30,110,200);rgb(60,160,240);rgb(80,180,250);rgb(130,210,255);rgb(160,240,255);rgb(200,250,255);rgb(230,255,255);rgb(255,250,220);rgb(255,232,120);rgb(255,192,60);rgb(255,160,0);rgb(255,96,0);rgb(255,50,0);rgb(225,20,0);rgb(192,0,0);rgb(165,0,0)"
                        volumeElevation="5,10"
                        data="(37,9,67,67);(5,0,91,91);(27,27,58,58);(69,83,72,72);(48,20,74,74);(46,45,94,94);(74,10,59,59);(38,73,60,60);(57,36,15,15);(22,42,80,80)"
                    >
                    </Series>
                    <Series
                        id="Series2"
                        type="point"
                        symbol="point"
                        symbol-color="rgb(0,255,0)"
                        symbol-opacity="0.800000"
                        symbol-size="7"
                        label-visible="hidden"
                        format="xyzw"
                        elevationType="none"
                        minElevation="0.000000"
                        maxElevation="100.000000"
                        colorElevation="rgb(10,50,120);rgb(15,75,165);rgb(30,110,200);rgb(60,160,240);rgb(80,180,250);rgb(130,210,255);rgb(160,240,255);rgb(200,250,255);rgb(230,255,255);rgb(255,250,220);rgb(255,232,120);rgb(255,192,60);rgb(255,160,0);rgb(255,96,0);rgb(255,50,0);rgb(225,20,0);rgb(192,0,0);rgb(165,0,0)"
                        volumeElevation="5,10"
                        data="(51,98,75,75);(34,16,65,65);(49,6,69,69);(50,14,94,94);(14,90,69,69);(30,42,7,7);(96,68,15,15);(87,82,58,58);(19,17,81,81);(47,15,50,50)"
                    >
                    </Series>
                </ScatterChart>
            </Shape>
        </Transform>
    </Scene>
</x3d>