由于CSS的许多限制和兼容性问题而感到沮丧,并且发现自己经常需要编写javascript代码以使我的网页按照我想要的方式进行布局,我想我可以通过完全放弃CSS来构建页面结构来简化未来的项目.
我编写了一个javascript库,它解析XML文件中指定的布局,并使用绝对定位和大小的非嵌套div将它们应用于HTML文档.因此,我们的想法是每个页面都有一个包含所有内容的HTML文件,一个XML文件,用于指定如何在页面上排列内容,以及一个用于表面样式的CSS样式表.
这是一个例子.(按下按钮以扩大布局.在所有主流浏览器的最新版本中测试.) 另一个.
该系统优雅地降级为普通html,甚至允许在禁用javascript的情况下单独设置样式.
在我看来,这种方法不仅消除了许多跨浏览器问题,而且还允许我以更少的工作实现更复杂的布局.例如,我的理解是,单独使用CSS无法完成以下操作,至少在没有嵌套div的情况下是这样:
尽管如此,我确信这被认为是亵渎神明的.那么,使用这个系统来布局网页有哪些潜在的问题呢?
编辑:代码在github上
我试图用C#编写音频应用程序并需要实现一个实时卷积混响处理器.我目前使用的方法是在使用长度超过~16,000个样本(44.1kHz)的脉冲响应时发生故障.我需要能够使用至少2秒或88,200个样本的脉冲响应.这是我尝试绘制我正在使用的方法的最佳尝试:
我使用的块大小是2048个样本.我正在使用NAudio库进行FFT,并且在负载时预先计算脉冲响应的FFT.
我的方法有什么问题?我知道我所追求的是可能的,因为我已经使用了大量的音频应用来完成它.
编辑:原来有两个问题:我使用的FFT库不够快,而且,对于这种类型的应用程序,C#通常不够快.在切换到非托管代码(C++)和更好的FFT库(FFTW)之后,问题得以解决.
给定一组二维空间中的n个粒子,其中每个粒子对集合中所有其他粒子的吸引力,与它们之间的距离的平方成反比,你能想象任何巧妙的计算净力的方法吗?每个粒子,不进行n ^ 2距离计算?
从我的程序的Particle类:
public void calculateAttractions(List<Particle> entities)
{
foreach (Particle p in entities)
{
if (!p.Equals(this))
{
Vector2 dx = this.Position - p.Position;
this.ApplyForce(-dx / dx.LengthSquared());
}
}
}
Run Code Online (Sandbox Code Playgroud)
在遇到性能问题之前,暴力方法只能在我的程序中模拟~150个粒子(使用XNA框架和Farseer物理引擎).
如果没有其他方法,这个代码怎么可能被优化,或者我怎么可能作弊?我已经尝试在粒子到粒子的基础上随机调用calculateAttractions(),这样在任何给定的时间内只有大约1/3的粒子被实际更新.这导致性能有所改善,但当然是以准确性为代价.
我要做的是类似于引力计算.有人在这个线程建议用复数工作,并用公式:
(z-z')/abs(z-z')**3
Run Code Online (Sandbox Code Playgroud)
但是,我不知道z指的是什么,我无法在其他任何地方找到这个等式的参考.
编辑:虽然我已经接受了下面的答案,但我最终使用了一个没人提到的解决方案:查找表.基本上,我预先计算所有距离(分辨率为1像素)的另一个粒子在一个粒子上施加的力,在任何方向上最多可达2000像素.然后可以在没有任何运行时距离计算的情况下确定力.虽然它不是一个精确的解决方案,但是失真是不可感知的,并且它允许我将模拟粒子的数量增加三倍(到现在数量被物理引擎而不是n体问题限制的程度. )
请考虑以下示例:
class _ref
{
public:
_ref() {}
_ref(const _ref& that) {}
virtual ~_ref() = 0;
};
_ref::~_ref() {}
template <typename T>
class ref : public _ref
{
protected:
ref(const _ref& that) {}
public:
ref() {}
ref(const ref<T>& that) {}
virtual ~ref() {}
template <typename U>
ref<U> tryCast()
{
bool valid;
//perform some check to make sure the conversion is valid
if (valid)
return ref<U>(*this); //ref<T> cannot access protected constructor declared in class ref<U>
else
return ref<U>();
}
};
Run Code Online (Sandbox Code Playgroud)
我希望所有类型的'ref'对象能够访问彼此的受保护构造函数.有没有办法实现这个目标?
algorithm ×2
c# ×1
c++ ×1
convolution ×1
css ×1
fft ×1
javascript ×1
optimization ×1
physics ×1
templates ×1
xna ×1