v-umrechnen-mathe

hio/nwt-gus-hi/v-umrechnen-mathe

Projiiziert eine Zahl von einem Bereich in einen anderen, wobei das Verhältnis beibehalten wird.
v-umrechnen-mathe
@/v-umrechnen-mathe
Projiiziert eine Zahl von einem Bereich in einen anderen, wobei das Verhältnis beibehalten wird.
Xnumber
Wert zum umrechnen
Sminnumber
Untere Grenze des Quellbereichs.
Smaxnumber
Obere Grenze des Quellbereichs.
Tminnumber
Untere Grenze des Zielbereichs.
Tmaxnumber
Obere Grenze des Zielbereichs.
v-umrechnen-mathe
X
Smin
Smax
Tmin
Tmax
Ergebnis
Ergebnisnumber
umgerechneter Wert

Previously known as xod/core/map-range.

To use the node in your project you should have the hio/nwt-gus-hi library installed. Use the “File → Add Library” menu item in XOD IDE if you don’t have it yet. See Using libraries for more info.

C++ implementation

#pragma XOD dirtieness disable

node {
    void evaluate(Context ctx) {
        auto x = getValue<input_X>(ctx);
        auto sMin = getValue<input_Smin>(ctx);
        auto sMax = getValue<input_Smax>(ctx);
        auto tMin = getValue<input_Tmin>(ctx);
        auto tMax = getValue<input_Tmax>(ctx);
        auto k = (x - sMin) / (sMax - sMin);
        auto xm = isnan(x) ? x : tMin + k * (tMax - tMin);
        emitValue<output_Ergebnis>(ctx, xm);
    }
}

Tabular tests

XSminSmaxTminTmaxErgebnis
001-1010-10
0.501-10100
2501010250
-1001010-100
0.5010InfInf
0.501-InfInfNaN
Inf01010Inf
-Inf01010-Inf
NaN01010NaN