标签: modeling

二维碰撞n体模拟(大量球的快速碰撞检测)

我想编写一个程序,用于在2D平面上模拟高数(N = 1000 - 10 ^ 5和更多)物体(圆)的运动.所有的身体都有相同的尺寸,它们之间唯一的相互作用是弹性碰撞.

我想得到类似的东西 疯狂的球 但是规模越大,飞机的球越多,填充越密集(这里不是气体模型,而是沸水模型).

所以我想要一种快速的检测方法,球号i在2*半径+ V*delta_t距离内的路径上确实有任何其他球.我不想为每个i球完全搜索与N球的碰撞.(此搜索将是N ^ 2.)

PS对不起循环动画GIF.只需按Esc即可停止它.(不适用于Chrome).

modeling collision-detection

8
推荐指数
1
解决办法
3278
查看次数

UML类图中的接口聚合

通常会在接口之间放置聚合关联吗?

例:

示例图

在这里,我觉得一个聚合是多余的.接口之间的接口更重要,因为这是类的客户端将使用的.BMW和LuxuryWheel将始终通过ICar和IWheel使用.但是,ICar并没有真正聚合IWheel,因为它是一个接口并且不包含任何实际逻辑.宝马显然汇总了LuxuryWheel,但这几乎是一个实施细节.

你会如何模仿这个?UML中是否有一种方法可以将聚合(或关联)标记为抽象或待实现?

uml modeling aggregation

8
推荐指数
1
解决办法
5614
查看次数

在Python中简单模拟物理学?

我想知道类似的具体模拟,就像在这里浇灌田地的模拟一样.

在Python中,您最喜欢的图书馆/互联网页面是什么?

我知道小Simpy,Numpy和Pygame.我想得到关于它们的例子.

python simulation modeling

7
推荐指数
1
解决办法
2万
查看次数

有没有人有Eclipse GMF的经验?

我刚刚开始使用Eclipse GMF.

  • 有人用过这个框架吗?
  • 您使用它的任何好的或坏的经历?
  • 您可以建议任何图形建模的替代方案吗?
  • 编辑:有哪些好的例子?

java modeling eclipse-gmf

7
推荐指数
1
解决办法
2062
查看次数

继承或枚举

我必须为应用程序构建新模型,而不是更好的方法:

使用继承或使用enum作为对象类型:

例如 :

图书

class Book
{
public string Name {get;set;}

public string Author {get;set;}

public int NumberOfPages {get;set;}

}

public class Encyclopedie:Book
{

}

public class Novel:Book
{

}
Run Code Online (Sandbox Code Playgroud)

或更好地使用:

class Book
{

public BookType Type {get;set;}

public string Name {get;set;}

public string Author {get;set;}

public int NumberOfPages {get;set;}

}

public enum BookType
{
Encyclopedie = 0,
Novel = 1,
...
}
Run Code Online (Sandbox Code Playgroud)

c# inheritance modeling

7
推荐指数
1
解决办法
2171
查看次数

什么是clabject?

我试图找到一个明确的clabject定义.

谁有一个好人?

oop modeling object metamodel

7
推荐指数
1
解决办法
976
查看次数

Django OneToMany

我正在django实施一个小型电子商店应用程序.我的问题涉及使用许多OrderLines对订单建模:如何使用订单直接访问的OrderLines建立Order to OrderLines关系的模型,即

Order
    def addOrderLine
    def allOrderLines
Run Code Online (Sandbox Code Playgroud)

我想从订单访问OrderLines而不必直接从db获取它们.Django提供了定义ForeignKeys的可能性,但这并没有解决我的问题,因为我必须定义以下内容:

class OrderLine(models.Model):
   order = models.ForeignKey(Order)
Run Code Online (Sandbox Code Playgroud)

有了这个定义,我必须直接从db获取OrderLines而不是通过Order.

我可能会使用这个定义并在Order关卡中提供方法.但是,这不起作用,因为如果我在文件中定义Order上面的内容,则看不到OrderLinemodels.pyOrderOrderLines

django modeling model

7
推荐指数
2
解决办法
6402
查看次数

在Papyrus中指定属性类型

我最近安装了Papyrus并尝试按照教程创建模型并从中生成Java代码.

不幸的是,我在开始时几乎陷入困境.在类定义中,我添加了一个静态操作main,并且我可以将其参数指定为数组:

in args: <Undefined> [*]
Run Code Online (Sandbox Code Playgroud)

不幸的是,它不允许我将类型指定为String.也就是说,我想指定如下:

in args: String [*]
Run Code Online (Sandbox Code Playgroud)

无论我如何输入类型(或任何类型),类型都会返回<Undefined>.我怀疑它应该使用的配置文件有些错误或缺失.不幸的是,这个工具的文档相当稀疏,我无法找到答案或解决方案.

任何人都遇到了同样的问题???

uml modeling papyrus

7
推荐指数
2
解决办法
1万
查看次数

Scala - 域对象建模

我目前正试图围绕Scala进行思考,并打算将它用于我的下一个必须处理DICOM的项目.DICOM具有相当广泛的规范,涵盖了数千页的标准.我对DICOM的理解非常有限,但简而言之,DICOM对象 - IOD(信息对象定义)由模块组成,而模块是类型名称 - 值属性对的集合.一些模块和属性的可选性进一步复杂化.例如:

SimpleImageIOD: {
    PatientModule: {
        name: String
        dateOfBirth: DateTime
    }
    StudyModule: {
        name: String
        date: DateTime (optional)
    }
    SeriesModule: {
        name: String
    }
    ImageModule: {
        height: Integer
        width: Integer
        pixelSize: Double (optional)
    }
    EquipmentModule: { (optional)
        type: String
    }
}
Run Code Online (Sandbox Code Playgroud)

有大量的模块,它们可能以各种组合形成不同的IOD.Scala反过来拥有大量的建模能力,包括所有特征,案例类,动态类等.你会如何在Scala中建模这样的域?我对语言很新,但我一直在考虑使用不可变的case类来定义模块,然后将它们聚合在各种IOD中,并使用镜头进行更新:

case class Patient(name: String, dateOfBirth: DateTime)
case class Study(name: String, date: Option[DateTime])
case class Series(name: String)
case class Image(height: Integer, width: Integer, pixelSize: Option[Double])
case class Equipment(type: String)

case class SimpleImageIOD(patient: Patient, study: Study, series: …
Run Code Online (Sandbox Code Playgroud)

dns modeling functional-programming scala object

7
推荐指数
1
解决办法
1635
查看次数

如何有效地结合类设计和矩阵数学?

有一段时间我现在在精神上受到两种物理系统建模设计理念的冲突的困扰,我想知道社区为此提出了什么样的解决方案.

对于复杂(呃)模拟,我喜欢为对象创建类的抽象,以及如何使用我想要研究的真实对象来识别类的对象实例,以及对象的某些属性如何表示现实生活对象的物理特征.让我们把弹道粒子系统作为一个简单的例子:

class Particle(object):
    def __init__(self, x=0, y=0, z=0):
        self.x = x
        self.y = y
        self.z = z
    def __repr__(self):
        return "x={}\ny={}\nz={}".format(self.x, self.y, self.z)
    def apply_lateral_wind(self, dx, dy):
        self.x += dx
        self.y += dy
Run Code Online (Sandbox Code Playgroud)

如果我用一百万个值初始化它,我可能会这样做:

start_values = np.random.random((int(1e6),3))

particles = [Particle(*i) for i in start_values]
Run Code Online (Sandbox Code Playgroud)

现在,让我们假设我需要对我的所有粒子做一个特定的事情,比如添加一个横向风向量,只为这个特定的操作导致ax,y shift,因为我只有一堆(列表)我的所有粒子,我需要遍历所有粒子才能做到这一点,这需要花费这么多时间:

%timeit _ = [p.apply_lateral_wind(0.5, 1.2) for p in particles]
1 loop, best of 3: 551 ms per loop
Run Code Online (Sandbox Code Playgroud)

现在,相反的明显范式,显然更有效,是保持在numpy水平,只是直接在数组上进行数学运算,速度超过10倍:

%timeit start_values[...,:2] += np.array([0.5,1.2])
10 loops, best of 3: 20.3 ms per …
Run Code Online (Sandbox Code Playgroud)

python oop modeling numpy data-modeling

7
推荐指数
1
解决办法
75
查看次数