小编Chr*_*ris的帖子

如何在std :: map中存储"对象类型"?

长篇介绍,问题在最后:


假设我有一个创建接口的基类

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)

c++

6
推荐指数
1
解决办法
3908
查看次数

在JavaScript中放置交互式对象的位置?

我正在创建一个基于Web的应用程序(即带有jQuery和大量SVG的JavaScript),用户可以在屏幕上与"对象"进行交互(想想可以通过arraows四处移动,调整大小和连接的DIV - 就像矢量绘图程序一样或图形编程语言).

由于每个"对象"包含个别信息但总是属于元素的"类",因此很明显应该使用OOP方法对该应用程序进行编程.

但是,我最好在哪里存储"物品"?

  • 我应该创建一个包含所有(JS本机)对象的全局结构("注册表")并告诉他们"在DOM上绘制自己"吗?
  • 或者我应该避免这样的结构,并将(相关的)DOM节点视为我的对象,并将相关数据作为.data()附加到它们?

第一种方法是非常MVC - 但我想所有事件处理程序的附件都是非常重要的.

第二种方法将以微不足道的方式处理事件,并且它不会创建重复的结构,但我想通常的OO东西(比如方法)会更复杂.

你有什么建议的?我认为答案将是JavaScript和SVG特定的"通常"编程语言没有这样高度组织的输出"画布".

javascript oop jquery svg dom

5
推荐指数
1
解决办法
597
查看次数

在SVG中显示流动运动的最佳方法?

我想创建一个网页,其中显示诸如流动的流体之类的东西。为此,我想使用SVG图形,其中(重复)运动的开始和停止是通过JavaScript控制的。

可以通过以下手绘GIF轻松地显示此运动:
在此处输入图片说明

但是,如何在SVG中通过简单的方法实现这种外观?尤其是因为它也必须在拐角处流动,即不仅需要线性运动...

最好已经在Inkscape中(半自动)创建了...

html javascript svg inkscape

5
推荐指数
1
解决办法
2788
查看次数

WebGL框架 - 什么是最佳选择?X3DOM?

我即将启动一个使用交互式生成的3D内容的Web应用程序.目标是让它在浏览器中本机运行,即不允许使用Flash,只允许使用JavaScript + HTML5.

除了使用纯WebGL之外,最好使用一个能提供更高级别界面的lib.

X3DOM的方法对我来说看起来很棒 - 看起来它应该在浏览器中成为原生,而lib将铺平道路.

但在我的第一印象后,我不确定它是否足够轻巧.除了400kb的JS-File之外,它还会降低Firefox的速度.

我需要的功能并不多.整个场景设置可以通过"手"轻松完成.但我需要用户互动,包括找出用户点击的位置.后来我希望能够以通用文件格式加载和插入3D对象.

PS:选择的浏览器是Firefox和基于Webkit的浏览器.桌面和移动设备.我不关心IE.

PPS:是的,我知道这个问题:WebGL框架

frameworks x3d webgl x3dom

4
推荐指数
1
解决办法
5428
查看次数

为什么在DIV中使用SVG元素时会出现滚动条?

我的目标是拥有一个<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)

html jquery svg

3
推荐指数
1
解决办法
2826
查看次数

标签 统计

svg ×3

html ×2

javascript ×2

jquery ×2

c++ ×1

dom ×1

frameworks ×1

inkscape ×1

oop ×1

webgl ×1

x3d ×1

x3dom ×1