比例尺 定量比例尺

2022-10-10 20:51:16 字數 3133 閱讀 3778

比例尺:就像函式一樣,將乙個量轉換為另乙個量,定義域到值域的轉換。

每個比例尺都需要指定乙個domain(定義域)和range(值域)。

定量比例尺:定義域是連續的。值域有連續的也有離散的。

var linear =d3.scale.linear()

.domain([0,20])

.range([0,100]);

console.log( linear(10) ); //

輸出50

console.log( linear(30) ); //

輸出150

console.log( linear.invert(80) ); //

輸出16

linear.clamp(

true

);console.log( linear(30) ); //

輸出100

linear.rangeround([0,100]);

console.log( linear(13.33) ); //

輸出67,對結果進行了四捨五入

//使用nice之後,定義域變成了比較工整的形式,但是並不是四捨五入

linear.domain([0.12300000,0.4888888888]).nice();

console.log( linear.domain() );

//輸出[0.1,0.5]

linear.domain([33.611111,45.97745]).nice();

console.log( linear.domain() );

//輸出[33,46]

var linear =d3.scale.linear()

.domain([-20,20])

.range([0,100]);

var ticks = linear.ticks(5);

console.log(ticks);

//輸出陣列[-20,-10,0,10,20]

var tickformat = linear.tickformat(5,"+");//

設定的格式為"+":表示如果是正數,則在前面新增乙個加號,負數則新增乙個減號。

for(var i=0;i)

console.log(ticks);

//輸出["-20","-10","+0","+10","+20"]

指數比例尺和對數比例尺的方法和線性比例尺一樣,但指數比例尺多乙個exponent(),對數比例尺多乙個base(),兩者都是用於指定底數。

var pow = d3.scale.pow().exponent(3);     //

設定指數比例尺的指數為3

console.log( pow(2) ); //

輸出為8

console.log( pow(3) ); //

輸出為27

pow.exponent(0.5);

console.log( pow(2) ); //

輸出為1.414

console.log( pow(3) ); //

輸出為1.732

//指定domain和range

//指數比例尺

var pow =d3.scale.pow()

.exponent(3)

.domain([0,3]) //

指數比例尺內部呼叫了線性比例尺,而且把這個線性比例尺

.range([0,90]); //

定義域的邊界變為了其指定的次方。即定義域為[0,27]

//線性比例尺

var linear =d3.scale.linear()

.domain([0,math.pow(3,3)])

.range([0,90]);

console.log( pow(1.5) ); //

輸出為11.25

console.log( linear(math.pow(1.5,3)) ); //

輸出為11.25

閾值比例尺:通過設定閾值,將連續的定義域對映到離散的值域裡,

//

該閾值比例尺定義了三個閾值:10、20、30,則空間被劃分為四段:負無窮到10,10到20,20到30,30到正無窮

var threshold =d3.scale.threshold()

.domain([10,20,30])

.range(["red","green","blue","black"]);

console.log( threshold(5) ); //

輸出red

console.log( threshold(15) ); //

輸出green

console.log( threshold(25) ); //

輸出blue

console.log( threshold(35) ); //

輸出black

console.log( threshold.invertextent("red") ); //

輸出[undefined,10]

console.log( threshold.invertextent("green") ); //

輸出[10,20]

console.log( threshold.invertextent("blue") ); //

輸出[20,30]

console.log( threshold.invertextent("black") ); //

輸出[30,undefined]

比例尺 解析度

1 region 計算比例尺的原理2 此段 僅限投影座標系 3float dx,dy 4 graphics g this creategraphics 5try 獲取當前螢幕的水平dpi和垂直dpi dpi即每英吋上的畫素點數 6 7finally89 const double dmeterperi...

比例尺不變 放大單個Polygon

這是乙個同事給提的需求,在此我把問題,以及研究的結果都整理出來。希望對大家有所幫助。需求 如圖 1,希望在當前比例尺下,滑鼠選中仙女湖的 polygon 時能夠對它重新渲染並放大 n倍,幾何重心不變。實現方法 1 獲取該polygon 的幾何重心。以arcengine 為例,採用 iarea.cen...

比例尺與解析度

1inch 25.4 mm 2.54cm 0.254dm 0.0254m 1m 1 0.0254 inch 39.37inch 比例尺,即地圖上的距離與地面實際距離的比例。比如1 5000 表示的是1cm對應現實的5000cm即50公尺。比例尺通常有三種表達方式 比例尺是表示圖上距離與實地距離縮小或...