Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用CSS或画布的Web 3D散点图(XYZ/RGB)_Css_Canvas_3d_Scatter Plot - Fatal编程技术网

使用CSS或画布的Web 3D散点图(XYZ/RGB)

使用CSS或画布的Web 3D散点图(XYZ/RGB),css,canvas,3d,scatter-plot,Css,Canvas,3d,Scatter Plot,我试图画出RGB值,这样我就可以很容易地知道,对于Kmean值定理,把什么作为K的值 但我想弄清楚的是我应该如何绘制我的三维数据。现在我正在尝试使用css3和-webkit转换:translate3d(x,y,z);财产。但是我很难想象每个旋转和东西应该是什么 echo ' <div style="width: 500px; height: 500px; background: #ffffff; -webkit-transform: perspective(800); -webki

我试图画出RGB值,这样我就可以很容易地知道,对于Kmean值定理,把什么作为K的值

但我想弄清楚的是我应该如何绘制我的三维数据。现在我正在尝试使用css3和-webkit转换:translate3d(x,y,z);财产。但是我很难想象每个旋转和东西应该是什么

echo '
    <div style="width: 500px; height: 500px; background: #ffffff; -webkit-transform: perspective(800); -webkit-transform-style: preserve-3d;">
        <div style="-webkit-transform: rotateZ(0deg); -webkit-transform-style: preserve-3d; position: relative;">
        <div style="-webkit-transform: rotateY(-45deg); -webkit-transform-style: preserve-3d; position: relative;">
        <div style="-webkit-transform: rotateX(-15deg); -webkit-transform-style: preserve-3d; position: relative;">
';
            foreach($Kmean_array['clusters'] as $key_cluster => $cluster)
            {
                foreach($cluster['points'] as $key_point => $point)
                {
                    echo '
                    <div style="position: absolute; opacity: .2; width: 4px; height: 4px; background: #', $Kmean_array['chosen_centroid']['hex'] ,'; -webkit-transform: translate3d(', $point['rgb']['r'] ,'px, ', $point['rgb']['g'] ,'px, ',$point['rgb']['b'] ,'px);"></div>
                    ';
                }
            }
echo '
        </div>
        </div>
        </div>
    </div>
';
echo'
';
foreach($Kmean_数组['clusters']作为$key_cluster=>$cluster)
{
foreach($cluster['points']作为$key\u point=>$point)
{
回声'
';
}
}
回声'
';

我完全可以使用别人用canvas等制作的系统。我只看过用java或flash制作的绘图。

您可以在这里查看演示:

要为每种颜色添加点,请遵循以下准则:

Red: 251 - {Your Red}
Green: 251 - {Your Green
Blue: -124 + {Your Blue}
例如,如果您的颜色为255、85、89,即#FF554F。 你的观点是:

<div class="point" style="-webkit-transform: translate3d(-4px, 166px, -35px); -moz-transform: translate3d(0px, 170px, -39px); -o-transform: translate3d(0px, 170px, -39px); -ms-transform: translate3d(0px, 170px, -39px); transform: translate3d(0px, 170px, -39px);">
    <div class="face one"></div>
    <div class="face two"></div>
    <div class="face three"></div>
    <div class="face four"></div>
    <div class="face five"></div>
    <div class="face six"></div>
</div>

必须进行加法和减法运算的原因是,平面上的原点不在0,0,0,而是在251,251,-124

更新(2013-11-9): 这是我制作的(0,0,0)很棒的3D轴。包括在每个轴上指向正方向的三维箭头

还可以查看我制作的这个web应用程序,它显示了一个三维实体,该实体定义了一些方程(非动态),带有一些旋转和缩放控件: