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)";
}
}
3D标签云的更多相关文章
- css3实践之摩天轮式图片轮播+3D正方体+3D标签云(perspective、transform-style、perspective-origin)
本文主要通过摩天轮式图片轮播的例子来讲解与css3 3D有关的一些属性. demo预览: 摩天轮式图片轮播(貌似没兼容360 最好用chrome) 3D正方体(chrome only) 3D标签云(c ...
- SP2010 3D标签云Web部分--很酷的效果,强烈推荐!!
SP2010 3D标签云Web部分--很酷的效果.强烈推荐! ! 项目描述叙事 基于简单Flash的3D标签云Web部件.SP Server 2010使用. 建立在内置标签云Web部件 ...
- 解析3D标签云,其实很简单
声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢! 最近开始用canvas搞3D了,搞得也是简单的东西,就是球体转圈.做出来后,突然想起以前看过的3D标签云,在以前觉得真心狂拽酷炫叼啊,当时 ...
- 纯JS实现的3D标签云,不依赖不论什么第三方库,支持移动页面
<span style="font-family: Arial, Helvetica, sans-serif;"><!DOCTYPE html PUBLIC &q ...
- jquery 3D 标签云
http://www.gbin1.com/technology/jquerynews/20111205tagcloudbyjquery/index.html 相关选项 zoom: 90 初始的缩放度 ...
- 3d标签云(JS版)
http://www.miaov.com/miaov_demo/3dLable/miaov_demo.html http://www.lijian.net/p/windstagball/index.h ...
- vue实现标签云效果
闲扯两句 最近想给自己的博客上加上一个3D标签云的效果,用来表示自己博客文章的分组,网上找到了canvas实现的,还有a元素实现的解析3D标签云,我想让标签可以选择和点击,又不想在标签数量较多时操作a ...
- 3D球状标签云(兼容IE8)
看见一个很有趣的标签云,3D球状,兼容 IE 8,亲测可用!其他版本没有测试.觉得挺有意思就拿来记录下来,学习学习,本文下方会放出我看的文章地址,先看一下效果: 接下来是代码,html + css + ...
- 分享一个3D球面标签云
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
随机推荐
- Spring @requestBody
页面提交请求参数有两种,一种是form格式,一种是json格式 jQuery的$.post方法虽然也可以传递json格式数据,但实际上是用的form格式提交,jquery会帮你把json转成form格 ...
- 判素数+找规律 BestCoder Round #51 (div.2) 1001 Zball in Tina Town
题目传送门 /* 题意: 求(n-1)! mod n 数论:没啥意思,打个表能发现规律,但坑点是4时要特判! */ /***************************************** ...
- 题解报告:hdu 1408 盐水的故事
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1408 Problem Description 挂盐水的时候,如果滴起来有规律,先是滴一滴,停一下:然后 ...
- strings命令的实现 2014-06-02 00:17 355人阅读 评论(0) 收藏
本程序实现从文件中提取连续4个以上的可打印字符.模仿linux中string命令 #include <stdio.h> #include<stdlib.h> #include ...
- Android Dialogs(4)Dialog事件处理
Passing Events Back to the Dialog's Host When the user touches one of the dialog's action buttons or ...
- solr 6.0 没有schema.xml未自动创建schema文件
solr 6.0 没有schema.xml未自动创建schema文件 摘要:在之前的Solr版本中(Solr5之前),在创建core的时候,Solr会自动创建好schema.xml,但是在之后的版本中 ...
- 转】Mahout构建图书推荐系统
原博文出自于: http://blog.fens.me/hadoop-mahout-recommend-book/ 感谢! Mahout构建图书推荐系统 Hadoop家族系列文章,主要介绍Hadoop ...
- PHP PDO事务处理及MYSQLengine=InnoDB
如果出现“#skip-innodb”则将“#”去掉,重启MySQL: 如果第一条无法解决,加上配置:default-storage-engine=InnoDB 再重启MySQL. 进入MYsql数据据 ...
- AJPFX分析Android退出应用最优雅的方式
什么是RS式呢?即Receiver+singleTask .我们知道Activity有四种加载模式,而singleTask就是其中的一种,使用这个模式之后,当startActivity时,它先会在当前 ...
- 简述SVN服务器配置和客户端操作
有关SVN服务器的搭建见:http://www.cnblogs.com/DwyaneTalk/p/3997688.html 搭建好环境之后,服务器端需要完成如下操作: 1.需要新建Repository ...