js实现椭圆轨迹_Js 椭圆轨迹运动动画 代码分享
*{margin:0px;padding:0px;}
div{border:1px solid #111;}
.points{width:1px;height:1px;border:0px solid #111;
position:absolute;
line-height:1px;font-size:1px;
background:#111;}
.go-oval{width:10px;height:10px;border:0px solid #111;
position:absolute;
line-height:1px;font-size:1px;
background:#111;
border-radius:5px;
}
(function(){
function $(idd){
var obj = {};
if( typeof( idd ) === 'string'){
var idName = idd.substr(1, idd.length );
if( idd.substr(0,1) === '#' ){
obj = document.getElementById(idName);
}
else if( idd.substr(0,1) === '.'){
obj = document.getElementsByName(idName);
}
else if( idd == 'document' ){
obj = document;
}
else {
obj = document.getElementsByTagName(idd);
//alert(idd)
}
}
else {
obj = idd;
}
return obj;
}
//生成椭圆曲线的点(数组)
function make_points(a, b, interval, addX, addY){
var x,y;
var xy = [],xy1 = [],xy2 = [];
addX = addX ? addX : a;
addY = addY ? addY : b;
x = - Math.sqrt( (b*b)*a*a/(b*b) );
for(var n = 0; 1; n ++){
y = Math.sqrt( b*b - (b*b*x*x)/(a*a) );
if( n == 0 ){
y0 = y;
}
xy1[n] = [x + addX,y + addY];
xy2[n] = [x + addX,-y + addY];
x = x + interval;
if( x > Math.sqrt( (b*b)*a*a/(b*b) ) ){
break;
}
}
//xy2倒序
for(var n = 0, n2 = len = xy2.length - 1 ; n <= len; n ++, n2--){
xy[n] = xy2[n2];
}
xy = xy1.concat(xy);
return xy;
}
//画椭圆曲线
function draw_oval(points){
var len = points.length;
var divs = '';
for(var n = 0; n < len; n ++){
divs += '
}
return divs;
}
//沿着曲线跑动
function go_oval(idd,points, n, t, addX, addY){
var len = points.length;
n = n ? n : 0;
t = t ? t : 10;
addX = addX ? addX : 0;
addY = addY ? addY : 0;
var $obj = $(idd).style;
$obj.left = points[n][0] + addX + 'px';
$obj.top = points[n][1] + addY + 'px';
n ++;
n = n == len ? 0 : n;
setTimeout(function(){
go_oval(idd, points, n, t, addX, addY);
},t);
}
window.onload = function(){
var points1 = make_points(50,100,1,200,200);
var points2 = make_points(200,100,1);
//画椭圆曲线
$('#tuoyuan1').innerHTML = draw_oval( points1 );
$('#tuoyuan2').innerHTML = draw_oval( points2 );
//alert( make_points(200,100,3) )
//小点在曲线上跑动
go_oval('#go-oval1',points1,0,10 ,-5,-5);
go_oval('#go-oval2',points2,0,10 ,-5,-5);
};
})();
js实现椭圆轨迹_Js 椭圆轨迹运动动画 代码分享相关推荐
- html图片自动切换的幻灯片效果的,js带点自动图片轮播幻灯片特效代码分享
本文实例讲述了javascript带点自动图片轮播幻灯片特效.分享给大家供大家参考.具体如下: 这是一款基于javascript实现带点自动图片轮播幻灯片特效代码,实现过程很简单. 运行效果图:--- ...
- 教你用html+js制作一个自己的点名系统,实例代码分享
简介 教你用html+js制作一个自己的点名系统,实例代码如下. 效果 代码 HTML <div class="wrapper"><h1 align=" ...
- Three.js学习五——让模型沿着轨迹移动
目录 流程 搭建场景环境 添加模型 增加运动轨迹 让模型沿轨迹运动 完整代码和效果 流程 基本流程 1.添加模型 2.增加运动轨迹 3.让模型沿轨迹运动 工程文件结构如下图: static:存放静态资 ...
- PHP3d地球,three.js绘制地球、飞机与轨迹的效果示例
对于three.js不太熟悉的朋友们可以参考这篇文章,threejs官网:https://threejs.org/ 首先我们来看下要实现的效果 这个缩小后的图片,下面我们来看下近距离的动态效果.. 效 ...
- 地图 显示 动态轨迹_动态轨迹怎么制作?华为Watch GT2轻松搞定
在抖音上,很多用户喜欢分享自己的运动轨迹视频,比如:小伙跑步去见女朋友,视频中的地图跑步轨迹形似爱心,健身立马甜蜜蜜.狗粮吃撑之余,也有很多小伙伴们好奇:既能监测运动卡路里等多项数据.又能展现人物动态 ...
- GPS/轨迹追踪、轨迹回放、围栏控制
折腾一个多月终于弄完了这个项目,起初都未曾接触GPS/轨迹追踪.轨迹回放.圈划围栏...等一些在百度地图或者Googel地图操作的一些业务,后端的业务相对来说简单点 cas单点登录,mongdb灵活的 ...
- 鹰眼轨迹android,鹰眼轨迹服务
轨迹追踪 鹰眼为每一个应用提供1000万终端以上轨迹管理能力,并且支持全球轨迹追踪.鹰眼提供多种API和SDK供开发者从各种终端追踪轨迹,如:手机.GPS定位器.智能后视镜等硬件设备.此外,鹰眼也支持 ...
- 人员走动轨迹展示——小人走动行走动画
曾想过把轨迹中人员行走做成动画效果,一直没找到好的办法,现在找到一个开源使用openlayers开发的动画,但是该动画是飞机飞行,需要稍作修改,将飞机换成小人的64向图.需要调整的部分为: 1.飞机不 ...
- Moveit编程——moveit 编程技巧笔记——圆弧轨迹规划+修改轨迹
moveit 编程技巧笔记--圆弧轨迹规划+修改轨迹 1 笛卡尔空间圆弧轨迹规划 2 轨迹重定义(修改moveit生成的轨迹数据) 1 笛卡尔空间圆弧轨迹规划 之前学习过笛卡尔空间下轨迹规划API:( ...
- 采用rrt进行机械臂轨迹规划得到轨迹的算法步骤
采用RRT进行机械臂轨迹规划得到轨迹的算法步骤如下: 定义机械臂的状态空间和操作空间,其中状态空间包括机械臂的关节角度.末端执行器的位置和姿态等信息,操作空间包括机械臂的关节空间和笛卡尔空间. 初始化 ...
最新文章
- 到2030年,智能农业或将养活85亿人!但网络安全威胁需要重视
- java解析静态AIS原始数据
- Unity3D_NGUI_安卓APK安装包瘦身实践
- 阿里云服务器安装JDK指南
- Oracle使用ODBC连接配置
- 快讯:阿里巴巴加入JCP执行委员会
- 获取列表的最后一个元素
- python之路 Day9 MySQL学习
- svm loss function是什么
- 华氏温度转摄氏温度c语言作业,C语言摄氏度互相转换华氏
- 电力职称计算机英语成绩查询,职称考试成绩查询
- python与数据库实现报表的分组统计_报表排版与布局:数据分组和统计(RDL/页面报表)...
- Gephi 网络可视化——调整节点大小
- 产生唯一的id(idworker工具类)
- 在疫情肆虐的世界里,适度恐惧的活着
- 最近研究的windows API
- 怎么在cmd 窗口 远程连接服务器
- 谈谈promise,谈谈微任务
- 销售crm系统排行?2022年终十大销售管理系统软件推荐
- su和su-以及sudo的理解