diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-05-16 15:29:53 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-05-16 15:29:53 -0700 |
commit | 444227b3c413c544f357f2b8b7e9394a59a7d839 (patch) | |
tree | 52056c7435a2621de87d3dc6e7248c1319887bf8 /509bezier.mu | |
parent | c3eddb915403cc92832dcb5373bd6e9af6affcc0 (diff) | |
download | mu-444227b3c413c544f357f2b8b7e9394a59a7d839.tar.gz |
first bit of animation
Diffstat (limited to '509bezier.mu')
-rw-r--r-- | 509bezier.mu | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/509bezier.mu b/509bezier.mu index c915bbbb..5cbf23a6 100644 --- a/509bezier.mu +++ b/509bezier.mu @@ -293,3 +293,24 @@ fn draw-monotonic-bezier screen: (addr screen), x0: int, y0: int, x1: int, y1: i # plot the remaining straight line draw-line screen, x y, x2 y2, color } + +# 0 <= u <= 1 +fn bezier-point u: float, x0: int, x1: int, x2: int -> _/eax: int { + var one/eax: int <- copy 1 + var u-prime/xmm0: float <- convert one + u-prime <- subtract u + var result/xmm1: float <- convert x0 + result <- multiply u-prime + result <- multiply u-prime + var term2/xmm2: float <- convert x1 + term2 <- multiply u + term2 <- multiply u-prime + result <- add term2 + result <- add term2 + var term3/xmm2: float <- convert x2 + term3 <- multiply u + term3 <- multiply u + result <- add term3 + var result/eax: int <- convert result + return result +} |