Ich könnte mir sogar vorstellen:

 

new Point(pt2.x + f * (pt1.x - pt2.x), pt2.y + f * (pt1.y - pt2.y));

 

Das spart noch zwei Multiplikationen. Multiplikationen sind teuer (eventuell mehr als eine Nanosekunde). Wenn man ganz genau ist, könnte man je nach Größe von f unterschiedliche Formeln nehmen, um die Rundungsfehler zu minimieren:

 

new Point(f < 0.5 ? pt2.x + f * (pt1.x - pt2.x) : pt1.x + (1 – f) * (pt2.x – pt1.x), 

          f < 0.5 ? pt2.y + f * (pt1.y - pt2.y) : pt1.y + (1 – f) * (pt2.y – pt1.y));

 

Dann ist es aber wieder nicht schneller.

 

Liebe Grüße

Olaf

 

From: Frank Wienberg [mailto:notifications@github.com] 
Sent: Freitag, 7. Juni 2013 09:33
To: CoreMedia/jangaroo-libs
Subject: Re: [jangaroo-libs] corrected interpolate calculation (#12)

 

In jooflash/src/main/joo/flash/geom/Point.as:

> @@ -116,7 +116,7 @@ public class Point {
>     *
>     */
>    public static function interpolate(pt1:Point, pt2:Point, f:Number):Point {
> -    return new Point(pt1.x + pt2.x * f, pt1.y + pt2.y * f);
> +    return new Point((pt1.x - (pt1.x * (1 - f))) + (pt2.x - (pt2.x * f)), (pt1.y - (pt1.y * (1 - f))) + (pt2.y - (pt2.y * f)));

Right. But I think this can be simplified to

new Point(pt1.x * f + pt2.x * (1 - f), pt1.y * f + pt2.y * (1 - f));

—
Reply to this email directly or view it on GitHub <https://github.com/CoreMedia/jangaroo-libs/pull/12/files#r4584182> .