日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

动画与互动

發布時間:2025/4/16 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 动画与互动 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

地圖變形

我們通常將三維圖形轉換成二維圖形,不可避免的會造成一部分圖像失真。這取決于我們關注哪一部分了,可以盡可能保證主要部分不失真,次要部分失真就可以了。墨卡托投影圖法的原理大概就是如此。

如圖所示,格陵蘭島看起來和非洲幾乎一樣大就是失真的結果。我們保證赤道附近的數據不失真,越向兩級失真越明顯。

D3中的地圖

<!DOCTYPE html> <html> <head><meta charset="utf-8"><script src="http://d3js.org/d3.v3.min.js"></script><style></style><script type="text/javascript"> function draw(geo_data) { "use strict";var margin = 75,width = 1400 - margin,height = 600 - margin;var svg = d3.select("body").append("svg").attr("width", width + margin).attr("height", height + margin).append('g').attr('class', 'map');// 設置墨卡托投影法var projection = d3.geo.mercator()//設置放大縮小按鈕.scale(170)//把地圖中心拖動至不同位置。這里把位置設置為頁面中已有//的SVG元素的一半.translate([width/2, height/2]);//創建SVG對象,來代表地圖的多邊形,將精度和緯度轉換為像素域//調用projection載入我們需要的映射var path = d3.geo.path().projection(projection);//選擇SVG所有路徑var map = svg.selectAll('path')//.features與國家坐標的數組相對應.data(geo_data.features)// 選擇所有國家路徑.enter().attr('d',path)// 把整個地圖的填充顏色從黑色改為藍色.style('fill', 'rgb(9,157,217)')// 把地圖邊框改為深黑色線條.style('stroke', 'black').style('stroke-width', 0.5);function plot_points(data){//畫小圓點};var format = d3.time.format("%d-%m-%Y (%H:%M h)");//使用一個中間數據轉換函數,把我們的觀賽人數轉換成整數,把日期轉換成javastript對象d3.tsv("world_cup_geo.tsv", function(d) {d['attendance'] = +d['attendance'];d['date'] = format.parse(d['date']);return d;//放入我們已經定義好的回調函數}, plot_points); };</script></head> <body><script type="text/javascript">/*Use D3 to load the GeoJSON file*/// 載入JSON文件,一旦所有數據載入成功,調用draw函數 d3.json("world_countries.json", draw);</script> </body> </html> 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的动画与互动的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。