2013-07-01 66 views
0

我有兩條曲線,每條曲線通過使用d3.svg.line在一組(x,y)值上進行插值來定義。我希望一條線在下面的時候是紅色的,而當上面的時候是綠色的。像這樣:給定兩條任意插值曲線,根據相對值對它們着色

lines

如何才能做到這一點?

+1

爲什麼?因爲很難判斷一條線是高於還是低於另一條線? –

+0

取決於你的「簡單」的定義 - 如果你的意思是「有一個選項,我可以設置得到這個」,那麼答案是否定的。你將不得不自己實現這一點。 –

+0

@LarsKotthoff問題編輯得更清楚 – Jonah

回答

2

看看他們的例子中的Difference圖表,它與你想要的非常相似,可能會滿足你的標準。如果沒有,我想你可以很容易地適應它,以適應你的需求。

+0

這實際上正是我所期待的,謝謝。 – Jonah

0

這樣做的主要問題是,您不能直接向路徑指定多個顏色。所以你有兩個主要選擇。

  • 將線段拆分爲段。每段可以有不同的顏色。
  • 使用漸變。顏色之間的轉換將是零寬度。

在任何一種情況下,您都必須計算線條交叉點。如果你的線條被指定爲函數,這對於一些代數很容易。如果你只有點並且想要在它們之間進行插值,那就有點棘手。

一旦你有了這些線交叉的點,它只是簡單地設置路徑/漸變結束的問題。

+0

感謝您的回答,那是我想到的方法,它看起來過於複雜。我會看看mbostock在Ian的例子中是如何做到的,因爲這對我來說是完美的需求。 – Jonah

+0

我不認爲這個例子適用於你的情況,因爲它不爲路徑着色,而是路徑定義的區域。 –

相關問題