zoukankan      html  css  js  c++  java
  • 3D标签云

    一、圆的坐标表达式

    for(var i = 0;i < len;i++){

    degree = (2*(k+1)-1)/len - 1;
    a = Math.acos(degree);//这样取得弧度数生成的点在球体上式均匀分布的
    b = a*Math.sqrt(len*Math.PI);

    x = radiu * Math.sin(a) * Math.cos(b);
    y = radiu * Math.sin(a) * Math.sin(b);
    z = radiu * Math.cos(a);

    label_item[k].style.transform = "translateZ("+z+"px) translateX("+x+"px) translateY("+y+"px)";//设置x,y,z坐标

    }

    //x轴旋转

    //核心代码

     {

    y' = y*cos(θ) - z*sin(θ);

    z' = z*cos(θ) + y*sin(θ);

    }
    function rotateX(elements,degreeX){
    var label_item = elements;
    var degree = degreeX;
    // console.log(getSpeed())
    var cos = Math.cos(degree);
    var sin = Math.sin(degree);
    var x, y,z;
    for(var i = 0;i < label_item.length;i++){
    x = label_item[i].dataset.x;
    y = label_item[i].dataset.y;
    z = label_item[i].dataset.z;
    var y1 = y*cos - z*sin;
    var z1 = z*cos + y*sin;
    label_item[i].dataset.y = y1;
    label_item[i].dataset.z = z1;
    if(label_item[i].dataset.z < 0){
    label_item[i].style.opacity = '0.5';
    label_item[i].style.fontSize = '4px';
    }else{
    label_item[i].style.fontSize = '14px';
    }
    if(z > 0){
    label_item[i].style.opacity = "1";
    }else{
    label_item[i].style.opacity = "0.5";
    }
    label_item[i].style.transform = "translateZ("+z1+"px) translateX("+x+"px) translateY("+y1+"px) rotateX(0deg)";

    }
    }

    //y轴旋转

    //核心代码

    {

    x' = x*cos(θ) - z*sin(θ);

    z' = z*cos(θ) + x*sin(θ);

    }
    function rotateY(elements,degreeY){
    var label_item = elements;
    var degree = degreeY;
    var cos = Math.cos(degree);
    var sin = Math.sin(degree);
    var x, y,z;
    for(var i = 0;i < label_item.length;i++){
    x = label_item[i].dataset.x;
    y = label_item[i].dataset.y;
    z = label_item[i].dataset.z;
    var x1 = x*cos - z*sin;
    var z1 = z*cos + x*sin;
    label_item[i].dataset.x = x1;
    label_item[i].dataset.z = z1;
    if(label_item[i].dataset.z < 0){
    label_item[i].style.opacity = '0.5';
    label_item[i].style.fontSize = '4px';
    }else{
    label_item[i].style.fontSize = '14px';
    }
    if(z > 0){
    label_item[i].style.opacity = "1";
    }else{
    label_item[i].style.opacity = "0.5";
    }
    label_item[i].style.transform = "translateZ("+z1+"px) translateX("+x1+"px) translateY("+y+"px) rotateX(0deg)";

    }

    }

  • 相关阅读:
    EMES信息化制造系统的概念
    正则表达式校验日期、时间
    c#怎么string转化成ascii码
    C#实现将一个字符串进行翻转显示的6种方法,数组的 Reverse()反转方法
    把一个十六进制的字符串(包含0x或0X)转化成对应的数值 ASCII码
    为什么0-9转化成字符是+0x30,11转化成A是+0x37?
    oracle修改数据库字段长度
    表添加字段的SQL语句写法
    在数据表中添加一个字段的SQL语句怎么写-百度
    oracle创建表增加字段sql脚本,字段说明注释
  • 原文地址:https://www.cnblogs.com/deerfig/p/6730784.html
Copyright © 2011-2022 走看看