当前位置: 首页>>代码示例>>C++>>正文


C++ vec::add方法代码示例

本文整理汇总了C++中vec::add方法的典型用法代码示例。如果您正苦于以下问题:C++ vec::add方法的具体用法?C++ vec::add怎么用?C++ vec::add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在vec的用法示例。


在下文中一共展示了vec::add方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: dynlightreaching

void dynlightreaching(const vec &target, vec &color, vec &dir, bool hud)
{
    vec dyncolor(0, 0, 0);//, dyndir(0, 0, 0);
    loopv(dynlights)
    {
        dynlight &d = dynlights[i];
        if(d.curradius<=0) continue;

        vec ray(hud ? d.hud : d.o);
        ray.sub(target);
        float mag = ray.squaredlen();
        if(mag >= d.curradius*d.curradius) continue;

        vec color = d.curcolor;
        color.mul(1 - sqrtf(mag)/d.curradius);
        dyncolor.add(color);
        //dyndir.add(ray.mul(intensity/mag));
    }
#if 0
    if(!dyndir.iszero())
    {
        dyndir.normalize();
        float x = dyncolor.magnitude(), y = color.magnitude();
        if(x+y>0)
        {
            dir.mul(x);
            dyndir.mul(y); 
            dir.add(dyndir).div(x+y);
            if(dir.iszero()) dir = vec(0, 0, 1);
            else dir.normalize();
        }
    }
#endif
    color.add(dyncolor);
}
开发者ID:Elzair,项目名称:sauerbraten,代码行数:35,代码来源:dynlight.cpp

示例2: gethl

void gethl(){
    ldb x,y;
    ifstream ifl ("lti");
    for(int i=0;i<30;++i){
        ifl>>x>>y;
        hl.add(cpx(x,y));
    }
    for(int n=0;n<Nc;++n){
        cpx ps(0,0);
        for(int k=0;k<30;++k){
            ps += hl[k] * ekn[modnc(-1*k*n)];
        }
        hlt.add(ps);
    }
}
开发者ID:chongweilee,项目名称:Communication-Lab,代码行数:15,代码来源:odfm.cpp

示例3: modu

void modu(vec<cpx>& m,bool psi[][8]){
    int num;
    for(int i=0;i<Nc;++i){
        num = 0;
        for(int j=0;j<md;++j){
            num += psi[i][j]*pw[j];
        }
        m.add(symget(num));
    }
}
开发者ID:chongweilee,项目名称:Communication-Lab,代码行数:10,代码来源:odfm.cpp

示例4: ltifc

void ltifc(vec<cpx>& y,vec<cpx> x){
    cpx zn,ps;
    for(int n=0;n<Nc+L-1;++n){
        zn = cpx(dist(rgen),dist(rgen));
        ps = cpx(0,0);
        for(int l=0;l<=n && l<30;++l){
            ps += hl[l]*x[n-l] + zn;
        }
        y.add(ps);
    }
}
开发者ID:chongweilee,项目名称:Communication-Lab,代码行数:11,代码来源:odfm.cpp

示例5: dft

void dft(vec<cpx>& u,vec<cpx> ut,bool inverse){
    int j = ((inverse)?1:-1);
    for(int n=0;n<Nc;++n){
        cpx ps(0,0);
        for(int k=0;k<Nc;++k){
            ps += ut[k] * ekn[modnc(j*k*n)];
        }
        ps = ps / cpx(pow(Nc,0.5),0);
        u.add(ps);
    }
}
开发者ID:chongweilee,项目名称:Communication-Lab,代码行数:11,代码来源:odfm.cpp

示例6: swayhudgun

 void swayhudgun(int curtime)
 {
     fpsent *d = hudplayer();
     if(d->state!=CS_SPECTATOR)
     {
         if(d->physstate>=PHYS_SLOPE) swaymillis += curtime;
         float k = pow(0.7f, curtime/10.0f);
         swaydir.mul(k);
         vec vel(d->vel);
         vel.add(d->falling);
         swaydir.add(vec(vel).mul((1-k)/(15*max(vel.magnitude(), d->maxspeed))));
     }
 }
开发者ID:bedna-KU,项目名称:OF-Engine,代码行数:13,代码来源:render.cpp

示例7: drawline

bool effect::drawline(vec &from, vec &to, float size, int type, int elapse)
{
	if(size <= 0) return false;

	size *= this->size;
	int fade, gravity, num;
	setvars(this, type, fade, gravity, num);
	num *= from.dist(to) / (10 * size) * partmul * (elapse ? logf(elapse) / 3 : 1);
	if(particle == PART_STREAK || particle == PART_LIGHTNING)
		num /= 2;

	num = min<int>(min(num, linemaxsteps), from.dist(to) / linemininterval);
	if(!num) return false;
	vec delta = vec(to).sub(from).div(num);

	loopi(num)
	{
		switch(particle)
		{
			case PART_EXPLOSION:
			case PART_EXPLOSION_BLUE:
				particle_fireball(from, size * 2, particle, fade, colour, size * 2);
				break;
			case PART_STREAK:
			case PART_LIGHTNING:
			{
				if(!curtime) return false;
				vec start = vec(rnd(360) * RAD, rnd(360) * RAD).mul(4 * size).add(from);
				vec end = vec(delta).mul(1.5).add(start);

				particle_flare(start, end, fade, particle, colour, size);
				break;
			}
			default:
				particle_splash(particle, 2, fade, from, colour, size, max<int>(1, size * 5), gravity);
				break;
		}
		from.add(delta);
	}

	return true;
}
开发者ID:Happy-Ferret,项目名称:Platinum-Arts-Sandbox-Free-Game-Maker,代码行数:42,代码来源:rpgeffect.cpp

示例8: detc

void detc(vec<cpx>& u,vec<cpx> ut){
    for(int i=0;i<Nc;++i)
        u.add(ut[i]/hlt[i]);
}
开发者ID:chongweilee,项目名称:Communication-Lab,代码行数:4,代码来源:odfm.cpp

示例9: cycrem

void cycrem(vec<cpx>&u,vec<cpx> y){
    for(int i=0;i<Nc;++i)
        u.add(y[L+i-1]);
}
开发者ID:chongweilee,项目名称:Communication-Lab,代码行数:4,代码来源:odfm.cpp

示例10: cycins

void cycins(vec<cpx>&x,vec<cpx> u){
    for(int i=1;i<L;++i)
        x.add(u[Nc-L+i]);
    for(int i=0;i<Nc;++i)
        x.add(u[i]);
}
开发者ID:chongweilee,项目名称:Communication-Lab,代码行数:6,代码来源:odfm.cpp

示例11: getekn

void getekn(){
    for(int i=0;i<Nc;++i)
        ekn.add(cpx(cos(2*pi*i/Nc),sin(2*pi*i/Nc)));
}
开发者ID:chongweilee,项目名称:Communication-Lab,代码行数:4,代码来源:odfm.cpp


注:本文中的vec::add方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。