0

我正在寻找一个具有对数刻度的示例,我在这里找到了一些东西:

http://blog.dooapp.com/javafx-chart-api-and-logarithmic-scale-tag-ja

和这里:

https://forums.oracle.com/forums/thread.jspa?threadID=2420118&stqc=true

但它是用 JavaScript 编写的:有没有人这么好心地在 JavaFX 2.x 中重写这两种方法?

var logUpperBound: Number = bind Math.log10(upperBound);
var logLowerBound: Number = bind Math.log10(lowerBound);

override public function getDisplayPosition(arg0: Object): Number {
    def delta = logUpperBound - logLowerBound;
    def deltaV = Math.log10((arg0 as Number)) - logLowerBound;
    if (orientationVertical) {
        return (1 -((deltaV) / delta)) * height;
    } else {
        return ((deltaV) / delta) * width;
    }
}

override protected function updateTickMarks(): Void {
    if (tickMarks.size() == 0) {
        for (i in [0..Math.log10(upperBound)-1], j in [1..9]) {
            var v = j * Math.pow(10, i);
            insert CustomTickMark {
                customLabel: "{%6.0f v}"
                customPosition: getDisplayPosition(v)
                customValue: v
            } into tickMarks;
        }

    }
}

我不能使用这些方法,因为我不懂 JavaScript。

4

1 回答 1

1

你可以在这里找到我关于如何做到这一点的文章:

http://blog.dooapp.com

凯文

于 2012-08-01T14:42:23.447 回答