长篇介绍,问题在最后:
假设我有一个创建接口的基类
class base
{
public:
virtual ~base();
virtual void calc( int* variables ) = 0;
}
Run Code Online (Sandbox Code Playgroud)
还有一些继承的类可以完成工作(这里只显示了两个):
class add : public base
{
const int a, b, c;
public:
add( int a_, int b_, int c_ ) : a(a_), b(b_), c(c_) {}
void calc( int* variables )
{
variables[a] = variables[b] + variables[c];
}
}
class inc : public base
{
const int a;
public:
inc( int a_ ) : a(a_) {}
void calc( int* variables )
{
variables[a]++; …Run Code Online (Sandbox Code Playgroud) 我正在创建一个基于Web的应用程序(即带有jQuery和大量SVG的JavaScript),用户可以在屏幕上与"对象"进行交互(想想可以通过arraows四处移动,调整大小和连接的DIV - 就像矢量绘图程序一样或图形编程语言).
由于每个"对象"包含个别信息但总是属于元素的"类",因此很明显应该使用OOP方法对该应用程序进行编程.
但是,我最好在哪里存储"物品"?
第一种方法是非常MVC - 但我想所有事件处理程序的附件都是非常重要的.
第二种方法将以微不足道的方式处理事件,并且它不会创建重复的结构,但我想通常的OO东西(比如方法)会更复杂.
你有什么建议的?我认为答案将是JavaScript和SVG特定的"通常"编程语言没有这样高度组织的输出"画布".
我想创建一个网页,其中显示诸如流动的流体之类的东西。为此,我想使用SVG图形,其中(重复)运动的开始和停止是通过JavaScript控制的。
可以通过以下手绘GIF轻松地显示此运动:

但是,如何在SVG中通过简单的方法实现这种外观?尤其是因为它也必须在拐角处流动,即不仅需要线性运动...
最好已经在Inkscape中(半自动)创建了...
我即将启动一个使用交互式生成的3D内容的Web应用程序.目标是让它在浏览器中本机运行,即不允许使用Flash,只允许使用JavaScript + HTML5.
除了使用纯WebGL之外,最好使用一个能提供更高级别界面的lib.
X3DOM的方法对我来说看起来很棒 - 看起来它应该在浏览器中成为原生,而lib将铺平道路.
但在我的第一印象后,我不确定它是否足够轻巧.除了400kb的JS-File之外,它还会降低Firefox的速度.
我需要的功能并不多.整个场景设置可以通过"手"轻松完成.但我需要用户互动,包括找出用户点击的位置.后来我希望能够以通用文件格式加载和插入3D对象.
PS:选择的浏览器是Firefox和基于Webkit的浏览器.桌面和移动设备.我不关心IE.
PPS:是的,我知道这个问题:WebGL框架
我的目标是拥有一个<div>固定大小(通过JavaScript动态设置),只包含一个<svg>元素.当它<svg>大于父<div>滚动条时应该出现.当它更小时,它的大小应该设置为父级的大小<div>- 但是不应该出现滚动条.
这没有按预期工作,因为一些代码可以显示:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script type="text/javascript" src="lib/jquery-1.4.4.js"></script>
<script type="text/javascript" src="lib/jquery-ui-1.8.7.custom.min.js"></script>
<script type="text/javascript" src="lib/jquery.svg.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#editor').svg();
});
</script>
</head>
<body>
<div id="editor" style="width:500px;height:500px;overflow:auto"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这将创建一个几乎空的页面,其中包含一个<div>固定大小为500x500px的<svg width="500" height="500">内容.这个SVG有滚动条 - 虽然不需要它们,因为尺寸非常合适.
只有<svg>在演示被修改为时才能轻松显示
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta …Run Code Online (Sandbox Code Playgroud)