twerp.c
来自「细胞自动机的一个源代码」· C语言 代码 · 共 65 行
C
65 行
/*delt has different meanings depending on what you're going to use it with. for initialization: for hill: delt is the divisor for linear: delt determines step size (stepsize = (to-from)/delt) for smooth: delt determines acceleration (acel = (4*(to-from)/delt^2) for operation: for hill: n/a for linear: delt is time since last called for smooth: delt is time since last called*/#include "twerp.h"void twerpinitd(twerpd *d, double from, double to, double delt) { d->cur=0.0; d->from = from; d->to = to; d->delt = delt; d->step = (to-from)/delt; d->vel = 0.0; d->acel = 4.0*(to-from)/(delt*delt); d->tremain=delt; d->ttotal=delt;}double twerphilld(twerpd *d) { return(d->cur = (((d->cur) * (d->delt-1.0)) + (d->to))/(d->delt));}double twerplind(twerpd *d, double delt) { d->tremain -= delt; return(d->cur += (d->step)*delt);}double twerpsmoothd(twerpd *d, double delt) { d->tremain-=delt; d->vel+=(d->tremain<(d->ttotal/2.0))?-(d->acel*delt):(d->acel*delt); return(d->cur+=((d->vel)*delt));}/*int main(void) { twerpd h, l, s; twerpinitd(&h, 0.0, 1.0, 10.0); twerpinitd(&l, 0.0, 1.0, 10.0); twerpinitd(&s, 0.0, 1.0, 10.0); while (twerphilld(&h)<.99) { printf("%f\n", h.cur); } printf("\n"); while (twerplind(&l, .1)<.99) { printf("%f\n", l.cur); } printf("\n"); while (twerpsmoothd(&s, .1)<.99) { printf("%f\n", s.cur); } printf("\n");}*/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?