精华内容
下载资源
问答
  • GEOLayers脚本是一款能够利用谷歌地图制作路线运动、地图无限缩放、二维地图模拟三维效果的脚本,你只需要输入地点、调整缩放等简单操作即可获得一个地图动画,这些地图动画不仅可以用在MG动画中,还可以模拟航拍用...
    c96d8099add63c35a7fe01175329c4d8.png

    GEOLayers脚本是一款能够利用谷歌地图制作路线运动、地图无限缩放、二维地图模拟三维效果的脚本,你只需要输入地点、调整缩放等简单操作即可获得一个地图动画,这些地图动画不仅可以用在MG动画中,还可以模拟航拍用在纪录片中。

    该脚本课程分为三节,每节课讲得侧重点不同,所以希望大家把三节课看完,一定会对GEOLayers脚本有新的认识。

    第一节

    制作卫星地图缩放动画 19分钟

    1.GEOLayers脚本介绍

    2.GEOLayers脚本的安装方法

    3.如何创建地图合成及相关设置

    4.地图合成基本操作命令及参数

    5.案例:快速制作从太空到地球动画

    第二节

    制作三维地图模型 16分钟

    1.三维地图模型合成图层功能介绍

    2.模拟香山航拍效果

    3.GEOLayers脚本如何模拟三维地图

    第三节

    地图路径动画制作 4分钟

    1.如何创建道路交通图

    2.如何快速定位地理位置

    3.如何利用谷歌搜索添加地理位置标签

    相关课程资源:

    6a281796fcca3cd27cecbc41d8700aab.png

    资源整理

    资源下载地址:http://aepark.com/archives/1967

    展开全文
  • 很久没有写教程案例了,因为很久没有学新的技术了。...最终决定使用动画地图的方案。本文使用的所有技术全部来自Robin Lovelace, Jakub Nowosad, Jannes Muenchow的著作Geocomputation with R。https...

    b11d3b6070e497fc3c80b69f540fe4a3.png

    很久没有写教程案例了,因为很久没有学新的技术了。今天写一个最新做的案例,在一个paper中我们要展示某个数据在全国城市的分布的变化,原来的可视化方案是展示4个年份的地图facet,效果不是很好。最终决定使用动画地图的方案。

    本文使用的所有技术全部来自Robin Lovelace, Jakub Nowosad, Jannes Muenchow的著作Geocomputation with R。

    https://geocompr.robinlovelace.net/adv-map.html#animated-mapsgeocompr.robinlovelace.net
    1. 读入数据并认知数据结构

    我们是用的中国地图数据是一个geojson格式,使用geojsonsf包(比sf读geojson更快更稳定更灵活)读入数据。

    # install.packages('geojsonsf')
    library(geojsonsf)
    city <- geojson_sf('chinacity.geojson')

    我们先来看下读入的city是一个什么数据结构(从数据科学家的角度来看,理解了一个问题的充分必要条件是理解其数据结构)。city看上去就是一个dataframe,除了geometry这列有所不同,其他都是普通的列向量(被称作特征)。实际上,我们确实可以用dplyr对city进行各种操作。

    764ede3715a8c148b3c34f97408f9148.png

    那geometry是什么东西呢?让我们输出一个结果看看。它是一个地理信息系统vector(与一般的vector同名不同义,另一个数据类型是raster,不展开),代表了城市代码110000(北京市)的地理边界。其类型是MULTIPOLYGON,即多个多边形组成的vector。一个多边形储存的方式就是一堆顶点的二维坐标构成的一个list,加下面最后一行,第一个点的经纬度是(116.6319 41.05877)。

    city$geometry[1]
    
    输出为:
    Geometry set for 1 feature 
    geometry type:  MULTIPOLYGON
    dimension:      XY
    bbox:           xmin: 115.413 ymin: 39.44117 xmax: 117.507 ymax: 41.05901
    epsg (SRID):    4326
    proj4string:    +proj=longlat +datum=WGS84 +no_defs
    MULTIPOLYGON (((116.6319 41.05877, 116.6328 41....

    2. 将特征加入geo data frame

    当我们揭开神秘地理数据结构的面纱之后,接下来的操作就是平凡的了。

    首先,在初级应用中,我们不需要修改geometry列,所有的工作只是根据特征来可视化;

    那么,接下来要做的事情就是加入我们要画图的特征。

    # 要用于可视化的特征数据组,读入之后要进行一些清理,此处略去
    entry <- read.csv("entry.csv") 
    city_final <- left_join(city, entry, by = c("citycode","year")
    # 我们加入的特征向量为num,是panel,year代表年份
    # 需要注意的是,要把data frame 转换成sf对象
    city_final <- st_sf(city_final) 

    3. 画地图

    接下来,我们使用tmap包进行地图可视化,其语法与ggplot2类似(都是grammar of graphics),都属于图层式的。建议先花15分钟学习教程:

    https://cran.r-project.org/web/packages/tmap/vignettes/tmap-getstarted.htmlcran.r-project.org
    # 由于我们画的num是一个连续变量,因此需要定义一个切分(也可以使用style参数来调节自动切分)
    pb <- c(0,300,1000,2000,4000,8000,15000,20000,30000,80000,300000)
    # 取其中一年作为静态作图的数据
    tmp <- city_final %>% filter(year == 2016)
    # 使用tmp画静态地图
    tm_shape(tmp) + 
            tm_polygons("num", colorNA = NULL, palette = 'Blues', breaks = pb)
    # 其中 tm_shape 相当于 ggplot(tmp)指定作图对象,tm_polygons 类似于ggline 之类的,告诉R要画多边形
    # 与ggplot2语法不同的是,直接使用列名称“num”来制定填充对象
    # palette 规定配色方案,breaks 规定连续变量num的分组标准
    # 还可以用title参数规定图例的title

    作图效果如下

    e5f2673804f7568d67bf19c980fa7c30.png

    配色参考:

    https://www.nceas.ucsb.edu/~frazier/RSpatialGuides/colorPaletteCheatsheet.pdfwww.nceas.ucsb.edu

    4. 动画化

    在画动画地图之前,我们需要了解分片操作,tm_facets 的作用是指定一列作为分组标准,例如使用year 分组,相当于每一年做一张地图。

    动画的效果便是同一个位置,连续的将facet的地图呈现出来,我们使用tmap_animation来实现,代码如下:

    facet_anim <- tm_shape(tmp) + 
            tm_polygons("num", colorNA = NULL, palette = 'Oranges', breaks = pb,title="Number") +
            tm_facets(free.scales.fill = FALSE, nrow = 1, ncol = 1, along = "year") +
            tm_layout(legend.position = c("left", "bottom"))
    tmap_animation(tm = facet_anim, filename = "chinaexample.gif", width = 1600)
    # 注意在geocomputation with R作者提供的code中没有指定width参数,会产生error

    效果如下

    bb20b7a2ebaecc4296eee5c91499ce21.gif

    进阶内容:互动地图以及map application


    我就不写了,暂时用不到,哈哈哈!

    展开全文
  • 动画制作的原理,这个原理被称为是游戏动画师的圣经,在游戏动画这条路上,相信有了圣经,爱游戏动画的小伙伴们一定会越走越远。弧线(Acrs)运用弧线来体现人物的动作能够到达十分天然的视觉作用,这是由于有生命的...
    0da0a1cca518692618329efa4d8cf2bc.png戏动画制作的原理,这个原理被称为是游戏动画师的圣经,在游戏动画这条路上,相信有了圣经,爱游戏动画的小伙伴们一定会越走越远。64942bb506678145ff55d1ed2e5c1735.gif弧线(Acrs)

    运用弧线来体现人物的动作能够到达十分天然的视觉作用,这是由于有生命的物体都是依照曲线途径来移动的,而非彻底的直线运动.例如当人物头部从左向右转时,在中心方位的时分,头部并非水平,应当稍微低下来一些,不然观众会有生硬,受限制的感受。

    a7432bd6190ac76f3322644dd0b4ef0f.png

    在三维动画中,动画师在体现弧线运动时要注意它的前后改动,掌握好加/减速原理.作为动画中最常运用的一种准则,游戏动画师有必要了解力的基本原理,比方重力,空气阻力,摩擦力和力的传递等对弧线运动的影响和作用.才干非常好的使人物动作有美丽圆滑的韵律感.

    吸引力(Appeal)

     95c016ea5838a0a57d99a2c77f9b6fd0.png

    所有的人物都要有它吸引人的当地,无论是英雄,恶棍仍是小丑.这就需求明晰的人物设定,简约的规划,明显的特性,并且让人物的做法跟着故事的开展有所改动。(跑车:一个人物让大家从它的肢体言语看出他的全部,说到简单做到难.)

    准备(Anticipation)

    人物完结一个动作需求阅历准备,动作和完毕三个期间.准备通常是在一个大幅度的,迅速的首要动作之前,方向与之相反并且对比缓慢,幅度也小一些.准备动作的目的是使观众更明晰的看到动作,了解动作之间的联络,不然人物的动作会显得十分的突兀和生硬.那么在实践制造进程中准备应当使用到哪种程度呢?这依赖于下面的一些要素:

    0d30620d8d29e707e2bca4b0bff1df87.png

    施加了多少力;运动有多快;你期望观众有多惊奇;在一个准备中准备是不是正在发作,或许在一个动作中的方向已开端改动;是人物身体的一部分仍是全体在为动作做准备。

    慢入慢出(Slow-in and slow-out)

     1f9da1b2fa936de734dd25f3c9f9b21b.gif

    当现实日子中的物体开端运动或是停止下来的时分,它们会阅历加快和减速的天然进程.在人的行走中,人在迈出脚步的开端和完毕时运动减缓,而在中心加快,然后使全部动作愈加丰满舒缓。

    手绘窍门(Solid Drawing)

     98991066e4b943cc1587539f242a82a4.png

    传统的手绘动画需求十分厚实的绘画训练以及对美感的敏锐度,不过在三维动画范畴,手绘现已不再是动画师的工作内容。可是,不论是制造传统动画仍是电脑动画,游戏动画师都需求有厚实的绘画基础训练,才干将动画中所需求的画面更完好的体现出来。(跑车:在POSE TO POSE的动画制造中,拿起笔来制造想要的动作,会让你更精确的掌握全体和细节)

    直前与姿态到姿态动作

    直前动作和姿态到姿态动作是两种不一样的动画技术.在直前动作中,人物不需求预先设置首要姿态,自由扮演,动作捕捉和动力学模仿都归于这一类型.游戏动画师在实践调动画时更多的是运用姿态到姿态的办法,它将运动分解成一系列要害姿态,然后让软件主动插值计算出中心的进程,然后制造出流通的运动. 在长时间的的动画制造中,我感受姿态到姿态的动画办法简洁洁净,但整体来说过于卡通化和模式化,并且通常会连带出一些多余的跟从动作,不适合写实个性的动画片.不过关于有经历的动画师来说,挑选何种办法都能终究到达想要的作用。

    dcf02d87470d8ce1b8ce9118176f59d2.pngc5e0878bfe9036b537f902abce26b04c.gif

    扫码关注最新动态

    有趣的灵魂在这里等你!

    展开全文
  • 1.使用百度地图API制作轨迹播放;可应用于车辆跟踪、行驶线路回放、跑步行程的记录等地图应用场景,1.1绘制静态轨迹图获取多个轨迹点point(必须包含经度、纬度)使用polyline对象依次连接相邻的2个点(注意polyline的...

    1.使用百度地图API制作轨迹播放;

    可应用于车辆跟踪、行驶线路回放、跑步行程的记录等地图应用场景,

    1.1绘制静态轨迹图

    获取多个轨迹点point(必须包含经度、纬度)

    使用polyline对象依次连接相邻的2个点(注意polyline的个数比point的少1)

    1.2绘制动态轨迹图(固定间隔时间)

    每隔500毫秒读取一个轨迹点,实现a,b两个功能

    a增加一条polyline

    b将marker从先前的point移到当前点

    主方法使用setTimeout方法迭代来实现动态循环

    Polyline在每条迭代循环体中添加即可,marker的移动则可以通过2中方法来实现:

    一、使用removeOverlay除去原marker并在当前point处添加新marker

    这是当时做项目时想到的方法,由于先前绘制polyline时使用addOverlay的思维惯性,在绘制marker时也就继续使用了addOverlay做循环迭代。

    window.run = function (){

    var pts ={?????}//你获取到的一系列点的数组(通过gps或其他接口)

    var paths = pts.length;    //获得有几个点

    var carMk = new BMap.Marker(pts[0],{icon:myIcon});

    map.addOverlay(carMk);

    i=0;

    function removeMkPoint(i){

    if(i < paths){//

    setTimeout(function(){

    i++;

    map.removeOverlay(carMk);//清除前一个marker

    removeMkPoint(i);

    },100);

    }

    }

    setTimeout(function(){

    resetMkPoint(5);

    },100)

    });

    }

    setTimeout(function(){

    run();

    },1500);

    二、使用marker的setPosition方法重新设置marker的位置

    在项目完成后,我又读了一篇百度api的文档,发现官方demo中使用setPosition方法能很好地实现marker的移动功能

    window.run = function (){

    var pts ={?????}//你获取到的一系列点的数组(通过gps或其他接口)

    var paths = pts.length;    //获得有几个点

    var carMk = new BMap.Marker(pts[0],{icon:myIcon});

    map.addOverlay(carMk);

    i=0;

    function resetMkPoint(i){

    carMk.setPosition(pts[i]);//重新设置marker的position

    if(i < paths){

    setTimeout(function(){

    i++;

    resetMkPoint(i);

    },100);

    }

    }

    setTimeout(function(){

    resetMkPoint(5);

    },100)

    });

    }

    setTimeout(function(){

    run();

    },1500);

    注意:marker的opts属性能自定义marker的icon(汽车、人等图标)、旋转方向、大小、偏移等等属性,另外setAnimation方法还能设置动画效果。

    1.3绘制polyline

    轨迹线路是由一个一个polyline首尾相连组合起来的,因此,只需要在每次添加marker时添加一个polyline即可,并且在下一轮迭代循环中不需要清除,每条polyline的首尾2个端点就是当前点和上一个时间段的点

    var pts0,前一个点 var pts1当前点

    var carPl=new BMap.Polyline([pts0,pts1],{strokeColor:'blue',strokeWeight:4,strokeOpacity:0.8});

    map.addOverlay(carPl);

    pts0=pts1;//每次添加polyline后当前点变为前一个点

    1.4添加播放按钮控件控制轨迹播放

    添加自定义的播放控件,这里需要使用prototype属性来返回对象类型原型的引用,        这里给出prototype的理解

    例如:A.prototype = new B();

    理解prototype不应把它和继承混淆。A的prototype为B的一个实例,可以理解A将B中的方法和属性全部克隆了一遍。这里强调的是克隆而不是继承,其区别在于:A的prototype是B的实例,同时B的prototype也可能是A的实例。

    A能使用B的方法和属性,当A、B中都有方法名为f的方法时,A的实例instance调用这个f方法(instance.f)会是A自生的f方法而不是B的f方法,如果A的实例instance想调用B的f方法,需要使用call方法来实现:先new一个B的实例var Binstance=new B(); Binstance.f.call(instance);

    function PlayControl(){

    // 默认停靠位置和偏移量

    this.defaultAnchor = BMAP_ANCHOR_BOTTOM_RIGHT;

    this.defaultOffset = new BMap.Size(10, 40);

    }

    // 通过JavaScript的prototype属性继承于BMap.Control

    PlayControl.prototype = new BMap.Control();

    // 自定义控件必须实现自己的initialize方法,并且将控件的DOM元素返回

    // 在本方法中创建个input元素作为控件的容器,并将其添加到地图容器中

    PlayControl.prototype.initialize = function(map){

    // 创建一个DOM元素

    var input = document.createElement("input");

    input.id="playCtrl";

    input.type="image";

    input.src="image/play.png";

    input.οnclick=startPlay();//startPlay为上一步开始执行setTimeout迭代

    };

    // 添加DOM元素到地图中

    map.getContainer().appendChild(input);

    // 将DOM元素返回

    return input;

    };

    // 创建控件

    var myPlayCtrl = new PlayControl();

    // 添加到地图当中

    map.addControl(myPlayCtrl);

    1.5将播放按钮设计为可以单击切换播放和停止的按钮

    定义一个变量var i=0,在onclick事件触发时,将i在0和1之间不停切换,根据i的值来判断执行开始播放方法和停止方法。

    停止播放方法可以通过clearTimeout(timer)来实现(前提是在前面的开始播放方法中将setTimeout语句作为字符串赋值为timer),并使用removeOverlay来清除播放过程中出现的痕迹。

    input.οnclick=function(){

    if(i==0){

    startPlay();//播放开始

    input.src="image/pause.png";

    i=1;

    }else{

    pausePlay();//播放停止

    input.src="image/play.png";

    i=0;

    }

    };

    1.6添加播放速度控件

    上一步添加了播放开关,还可以在此基础上添加播放速度的控件来调节播放的快慢

    其方法与1.4中添加播放开关的方法类似,其中input的type为range(html 5中新的类型),通过读取range 的value,将value作为setTimeout的时间参数(作为参数传入播放方法),

    注意:当滑动range,value发生改变时,要使播放停止,再次点击播放按钮时,播放方法读取新的value;

    input.id="speedCtrl";

    input.type="range";

    input.max="1750";

    input.min="250";

    input.step="250";

    input.value="1000";

    var i=0;

    input.οnchange=function(){

    pausePlay();

    }

    总结:

    作为一个从学校里刚走出来的非计算机专业的前端新手,实习中的第一次上手项目,就有独立使用百度地图API的机会实在幸运。从百度地图API的具体使用实践中,我学到了很多,除了百度地图API以外,还学到了包括prototype、bootstrap(模态框、datetimepicker、validation等插件)等等。

    尽管有些不太完善的地方(例如:在infoWindow的content中不能使用bootstrap的模态框等),但百度地图API的功能仍然十分强大,值得广大新手学习。特别是随着移动互联网的快速发展以及各种带有gps定位功能的智能设备的爆发式普及,地图、定位类使用场景越来越多,地图API的使用需求也将越来越多。

    为了更好地练习百度地图,我打算利用节假日空闲的时间使用百度地图制作一个小游戏练手,游戏大致构思如下:(未来会在博客中向大家展示!)

    1.使用自定义marker作为游戏主角

    2.使用自定义控件来操作主角

    3.设置关卡或任务,

    4.计算奖励或得分

    5.设置障碍

    先实现这几个初级功能需求,就可以使自己的游戏主角在自己的城市中行走了!

    展开全文
  • 制作动画的十二个原则,不论是3D动画还是flash还是AE都适用。首先先找到十二个妹子,演示用。一:挤压与拉伸通过挤压与拉伸赋予物体或角色弹性,使其更加灵动。左为使用该原则的例子,右为对比。二:预先准备在人物...
  • Map Route Animations是一组不错的地图路线动画生成器,作为简洁时尚的FCPX插件,其中包含5个动画路线图。Map Route Animations使用简单您可添加到公司的演示文稿,商务幻灯片,电视节目,广告,电影,电影,预告片...
  • 3ds Max游戏动画场景制作教程、3D游戏地图制作全攻略
  • 谷歌地球可以加载地图数据,并为这些数据制作显示动画帕克园长主讲的《新版谷歌地球三维地图动画制作教程》中,东三省的案例动画截图在央视电视塔中添加三维元素查看三维地形,并在图中添加文字无论你对地理知识、...
  • 最主要的一点, position: absolute;绝对定位,根据子绝父相,给子元素添加绝对定位后,在不清楚父元素宽高的情况下,使子元素上下左右居中对齐,一定要写成top、left...否则动画不是中心点发散的! top:50%; left:5...
  • 当他们冲破想象自然而然就会想到用动画制作短视频这种新的表现形式了,当真时尚潮流之路后浪推前浪,不多说先给后浪比个大拇指 真牛!「咻动画」婚礼动画短片制作需要注意什么? 好了让我们先回到婚礼动画短片制作的...
  • 大家晚上好呀,我是利兄~今天就和大家分享一下“地图页”的制作。在日常的PPT制作中,经常会遇到各种各样的地图,特别是一些项目介绍、公司介绍的PPT。但是,同样是地图页的PPT,人家制作出来的是这样的。自己制作...
  • 二 节目区是我们拖进视频后的视频预览区,在这里我们可以制作时观察视频的效果 三 时间轴分为图形轴和声音轴,工具栏中的第一个选择工具和第四个剃刀工具和最后一个文字工具使用较多,选择工具:可以用来拖动视频...
  • css3提示框制作热点地图气泡提示框动画特效
  • fcpx插件 地图路线生成工具可生成3D动画 介绍fcpx插件 地图路线生成工具可生成3D动画 这是一个可制作地图路线的小工具,并可生成3D地球路线动画,可自定义城市及更改地图的颜色等等,很适合做旅行Vlog的影片使用,...
  • 娄底三维动画制作公司价格2020行情什么动画公司有制作企业宣传片的经验?从“广告”这个字眼出现后企业宣传片便开始崭露头角出现在大众的视线中,直到如今企业宣传片的演化也有在不断地刷新。现在企业对企业宣传片的...
  • Animate a point along a ...Max 回去苦心研究,查阅了各个教程, 终于研究出了如何实现航线地图上的飞行动画效果!今天, 我将教大家如何用 Mapbox Gl Js 联合 Turf.js 来实现下面的动画飞行效果!展示效果如下:...
  • AE特效PR剪辑C4D动画影视后期全世界只有不到1%的人关注了你是个很特别的人AE影视后期定期推送「AE+PR+C4D影视特效合成婚庆剪辑调色电视广告包装微电影制作SpeedGrade达芬奇专业调色摄影等」打造影视后期高端学习平台...
  • 二维动画设计flash宣传片巧妙的融合了图形技术和动画技术,在信息传递和主题的增强中起到重要的作用,可以准确的传达相应的内容。艺虎动画认为,二维动画设计flash宣传片要想完美展现,还需要掌握以下几点注意事项:...
  • 有几个做汽车导航的朋友问我说,他们想在地图制作一辆车沿着道路行驶的动画。可是,百度地图的道路数据并没有公开。所以,应该怎么办呢?一、我们先来学习如何把百度地图“弄”出来。把下面这段代码保存为htm格式...
  • 用Echarts制作供水工程地图迁移动画

    千次阅读 2017-08-12 17:07:36
    看到这个可爱的动画,忍不住要去做一个。经过一番寻找,找到比较靠谱的例子。 我们做供水工程设计,线路上在cad中导出坐标,用万能坐标转换成经纬度,在exce中处理一下坐标偏移量才行,再把这些经纬度数据到页面中...
  • 动画是当前的一个热门前沿专业,市场前景非常广,与数字传媒,平面设计齐名。数字艺术学术论文有自己学科独特的特点,对于一篇数字艺术论文而言,除了思想和创新点之外,最主要的就是语言论述,能否用科学的语言表达...
  • 对于许多玩家来说,魔兽争霸绝对是一款信仰级别的游戏,它曾经陪伴我们度过了许多难忘的美好时光,但是对于许多地图开发制作者来说,这个游戏更像是自己的信仰。魔兽一个游戏所衍生出的RPG地图,让许多玩家从中收益...
  • 前几天,苹果开了场“史上最尴尬”的发布会,发布会上牛皮吹的满天飞,可是到了中国,因为一些众所周知的神秘力量,什么Apple News/TV/Card等等服务都可能...赶紧来看地图放大动画杂志翻页动画三点汇聚动画杂志展...
  • 【百度地图API】如何利用地图API制作汽车沿道路行驶的动画?——如何获得道路层数据 原文:【百度地图API】如何利用地图API制作汽车沿道路行驶的动画?——如何获得道路层数据有几个做汽车导航的朋友问...
  • 而负责该作动画化的则是制作过《剧场版<空之境界>》和《Fate》等系列作品、以高品质的制作水平被动漫迷们所喜爱的“ufotable”动画公司。据他们所言,其几乎所有的高品质的演出·作画·背景·3DCG等产出都得益...
  • (三)制作人物动画 (1)首先得有个人物图,比如说带4个方向的,比如说每个方向有四种形态的。 这样的话就有16张图了(他们还得尺寸相同),于是把这16张图放到一张图上,例如,每排放面向同一个方向的四个。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 416
精华内容 166
关键字:

地图动画制作