插值器

以下內(nèi)容大部分為官方文檔翻譯而來:

d3. interpolate(a.b)

返回兩個任意值a和b之間的插值器。內(nèi)插器的實現(xiàn)基于最終值b的類型,使用以下算法:

  1. 如果b為null驮俗,未定義或布爾值骆捧,則使用常數(shù)b。
  2. 如果b是數(shù)字藕筋,請使用interpolateNumber翅雏。
  3. 如果b是一種顏色或可轉(zhuǎn)換為顏色的字符串圈驼,請使用interpolateRgb。
  4. 如果b是日期望几,請使用interpolateDate绩脆。
  5. 如果b是字符串,請使用interpolateString。
  6. 如果b是一個數(shù)組衙伶,請使用interpolateArray祈坠。
  7. 如果b可強制轉(zhuǎn)換為數(shù)字害碾,請使用interpolateNumber矢劲。
  8. 使用interpolateObject。

數(shù)值插值器 - d3.interpolateNumber(a,b)

var compNum=d3.interpolateNumber(0,3000);
console.log(compNum(0)); //0
console.log(compNum(0.5)); // 1500
console.log(compNum(0.0755)); // 226.5

整型數(shù)值插值器 - d3. interpolateRound(a,b)

var compNum=d3.interpolateNumber(0,3000);
console.log(compNum(0)); //0
console.log(compNum(0.5)); // 1500
console.log(compNum(0.075)); // 225

字符串插值器 - d3. interpolateString(a,b)

var compstring=d3.interpolateString("2px","13px");
console.log(compstring(0)); //2px
console.log(compstring(0.6)); //8.6px
console.log(compstring(0.75)); //10.25px

時間插值器 - d3.interpolateDate(a,b)

var compDate=d3.interpolateDate(new Date('2017,6,1'),new Date('2017,6,30'));
console.log(compDate(0));//Thu Jun 01 2017 00:00:00 GMT+0800 (中國標(biāo)準(zhǔn)時間)
console.log(compDate(0.6));//Sun Jun 18 2017 09:36:00 GMT+0800 (中國標(biāo)準(zhǔn)時間)
console.log(compDate(0.75));//Thu Jun 22 2017 18:00:00 GMT+0800 (中國標(biāo)準(zhǔn)時間)

數(shù)組插值器 - d3.interpolateArray(a,b)

var a=[10,15,20],b=[60,100,-30];
var compArray=d3.interpolateArray(a,b);
console.log(compArray(0));//[10, 15, 20]
console.log(compArray(0.6));//[40, 66, -10]
console.log(compArray(1));//[60, 100, -30]

對象插值器 - d3.interpolateObject(a,b)

var obja1={"name":'商品1',value:1000};
var obja2={"name":'商品100',value:5000};
var compObject=d3.interpolateObject(obja1,obja2);
console.log(compObject(0));//{name: "商品1", value: 1000}
console.log(compObject(0.6));//{name: "商品60.4", value: 3400}
console.log(compObject(1));//{name: "商品100", value: 5000}

RGB顏色插值器 - d3.interpolateRgb(a,b)

var compColor=d3.interpolateRgb(d3.rgb(0,209,47),d3.rgb(130,130));
console.log(compColor(0));//rgb(0, 209, 47)
console.log(compColor(0.5));//rgb(65, 170, 47)
console.log(compColor(0.7));//rgb(91, 154, 47)

CSS變換插值器 - d3.interpolateTransformCss(a,b)

const interpolator = d3.interpolateTransformCss(
   "translateY(12px) scale(2)",
   "translateX(3em) rotate(5deg)"
);
console.log(interpolator(0.5));
//translate(24px, 6px) 
//rotate(2.4999980262174595deg)  
//scale(1.5000001485168504,1.5000001485168504)

SVG變換插值器 - d3.interpolateTransformSvg(a,b)

官網(wǎng)例子

Zoom插值器 - d3.interpolateZoom(a,b)

官網(wǎng)例子

離散型插值器 - d3.interpolateDiscrete(values)

const colors = ["red", "blue", "green"],
interpolator2 = d3.interpolateDiscrete(colors),
random = d3.randomBates(3);
console.log(interpolator2(random()));//blue
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末慌随,一起剝皮案震驚了整個濱河市芬沉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌阁猜,老刑警劉巖丸逸,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異剃袍,居然都是意外死亡黄刚,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門民效,熙熙樓的掌柜王于貴愁眉苦臉地迎上來憔维,“玉大人,你說我怎么就攤上這事畏邢∫蛋牵” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵舒萎,是天一觀的道長程储。 經(jīng)常有香客問我,道長臂寝,這世上最難降的妖魔是什么章鲤? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮咆贬,結(jié)果婚禮上败徊,老公的妹妹穿的比我還像新娘。我一直安慰自己素征,他們只是感情好集嵌,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著御毅,像睡著了一般根欧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上端蛆,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天凤粗,我揣著相機(jī)與錄音,去河邊找鬼。 笑死嫌拣,一個胖子當(dāng)著我的面吹牛柔袁,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播异逐,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼捶索,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了灰瞻?” 一聲冷哼從身側(cè)響起腥例,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎酝润,沒想到半個月后燎竖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡要销,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年构回,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疏咐。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡纤掸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出凳鬓,到底是詐尸還是另有隱情茁肠,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布缩举,位于F島的核電站垦梆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏仅孩。R本人自食惡果不足惜托猩,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望辽慕。 院中可真熱鬧京腥,春花似錦、人聲如沸溅蛉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽船侧。三九已至欠气,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間镜撩,已是汗流浹背预柒。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宜鸯。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓憔古,卻偏偏與公主長得像,于是被迫代替她去往敵國和親淋袖。 傳聞我的和親對象是個殘疾皇子鸿市,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容