2.0.15 • Published 8 months ago

@antv/g-plugin-box2d v2.0.15

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

@antv/g-plugin-box2d

支持 Box2D 物理引擎(仅支持刚体)。2D 图形初始化后开始仿真,在任意时刻可以施加外力改变图形的位置和旋转角度。

运行时加载 WASM 方式使用,entry 使用 UMD:

目前使用 Box2D 2.4,参考文档:https://box2d.org/documentation/。

安装方式

创建插件并在渲染器中注册:

import { Plugin as PluginBox2D } from '@antv/g-plugin-box2d';
renderer.registerPlugin(new PluginBox2D());

在 2D 图形中使用相关物理属性:

new Circle({
    style: {
        rigid: 'dynamic', // 动态物体,参与受力计算
        density: 10, // 密度:10 千克/平方米
        r: 10, // 半径:对应物理世界中 10 米
    },
});

全局配置

全局物理世界配置。

gravity

重力,默认值为 [0, 100]

new PluginBox2D({
  gravity: [0, 10], // 物理世界中的重力
}),

timeStep

仿真时间间隔,默认值为 1/60

velocityIterations

默认值为 8

positionIterations

默认值为 3

图形物理属性

Box2D 使用如下物理单位:米、千克和秒。

https://box2d.org/documentation/mdd_1git_hub_box2d_docs_loose_ends.html#autotoc_md124

Box2D uses MKS (meters, kilograms, and seconds) units and radians for angles.

rigid

刚体类型:

  • static 静态物体,例如地面
  • dynamic 动态物体,计算受力
  • kinematic

density

密度,千克/平方米。静态物体为 0。

linearVelocity

线速度,默认值为 [0, 0]

angularVelocity

角速度,默认值为 0

gravityScale

重力因子,默认值为 1https://box2d.org/documentation/mdd_1git_hub_box2d_docs_dynamics.html#autotoc_md60

linearDamping

阻尼,默认值为 0https://box2d.org/documentation/mdd_1git_hub_box2d_docs_dynamics.html#autotoc_md59

angularDamping

角阻尼,默认值为 0https://box2d.org/documentation/mdd_1git_hub_box2d_docs_dynamics.html#autotoc_md59

fixedRotation

固定旋转角度,默认值为 falsehttps://box2d.org/documentation/mdd_1git_hub_box2d_docs_dynamics.html#autotoc_md62

bullet

默认值为 falsehttps://box2d.org/documentation/mdd_1git_hub_box2d_docs_dynamics.html#autotoc_md63

对物体施加外力

除了通过初始化参数进行仿真,在任意时刻都可以通过施加外力,改变物体的位置和旋转角度。

https://box2d.org/documentation/mdd_1git_hub_box2d_docs_dynamics.html#autotoc_md71

void b2Body::ApplyForce(const b2Vec2& force, const b2Vec2& point);
void b2Body::ApplyTorque(float torque);
void b2Body::ApplyLinearImpulse(const b2Vec2& impulse, const b2Vec2& point);
void b2Body::ApplyAngularImpulse(float impulse);

applyForce

const plugin = new PluginBox2D();
plugin.applyForce(circle, [0, 0], [0, 0]);

applyTorque

applyLinearImpulse

applyAngularImpulse

WIP 流体

使用 liquidfun:https://github.com/Birch-san/box2d-wasm/blob/c04514c040/README.md#alternative-distributions

2.0.15

8 months ago

2.0.14

9 months ago

2.0.13

9 months ago

2.0.12

9 months ago

2.0.11

9 months ago

2.0.11-alpha.0

9 months ago

2.0.10

9 months ago

2.0.9

10 months ago

2.0.5

1 year ago

2.0.7

12 months ago

2.0.6

1 year ago

2.0.8

11 months ago

2.0.4

1 year ago

2.0.3

1 year ago

2.0.2

1 year ago

2.0.1

1 year ago

2.0.0

1 year ago

1.9.24

1 year ago

1.9.23

1 year ago

1.9.22-next.20

1 year ago

1.9.22-next.19

1 year ago

1.9.22-next.18

1 year ago

1.9.22-next.17

1 year ago

1.9.22-next.16

1 year ago

1.9.22-next.15

1 year ago

1.9.22-next.14

1 year ago

1.9.22

1 year ago

1.9.22-next.13

1 year ago

1.9.22-next.12

1 year ago

1.9.22-next.11

1 year ago

1.9.22-next.10

1 year ago

1.9.22-next.9

1 year ago

1.9.22-next.8

1 year ago

1.9.22-next.7

1 year ago

1.9.22-next.4

1 year ago

1.9.22-next.6

1 year ago

1.9.22-next.1

1 year ago

1.9.22-next.2

1 year ago

1.9.22-next.3

1 year ago

1.9.22-next.0

1 year ago

1.9.21

1 year ago

1.9.20

2 years ago

1.9.19

2 years ago

1.9.18

2 years ago

1.9.17

2 years ago

1.9.16

2 years ago

1.9.15

2 years ago

1.9.14

2 years ago

1.9.13

2 years ago

1.9.12

2 years ago

1.9.11

2 years ago

1.9.10

2 years ago

1.9.8

2 years ago

1.9.7

2 years ago

1.9.6

2 years ago

1.9.5

2 years ago

1.9.4

2 years ago

1.9.3

2 years ago

1.9.2

2 years ago

1.9.1

2 years ago

1.9.0

2 years ago

1.8.0

2 years ago

1.8.0-beta.1

2 years ago

1.7.52

2 years ago

1.7.53

2 years ago

1.8.0-alpha.1

2 years ago

1.7.50

2 years ago

1.7.51

2 years ago

1.7.47

2 years ago

1.7.48

2 years ago

1.7.49

2 years ago

1.7.39

2 years ago

1.7.40

2 years ago

1.7.41

2 years ago

1.7.42

2 years ago

1.7.43

2 years ago

1.7.44

2 years ago

1.7.45

2 years ago

1.7.46

2 years ago

1.7.35

3 years ago

1.7.36

2 years ago

1.7.37

2 years ago

1.7.38

2 years ago

1.7.19

3 years ago

1.7.20

3 years ago

1.7.21

3 years ago

1.7.22

3 years ago

1.7.23

3 years ago

1.7.24

3 years ago

1.7.25

3 years ago

1.7.26

3 years ago

1.7.27

3 years ago

1.7.28

3 years ago

1.7.29

3 years ago

1.7.30

3 years ago

1.7.31

3 years ago

1.7.32

3 years ago

1.7.33

3 years ago

1.7.34

3 years ago

1.7.18

3 years ago

1.7.10

3 years ago

1.7.11

3 years ago

1.7.12

3 years ago

1.7.13

3 years ago

1.7.14

3 years ago

1.7.15

3 years ago

1.7.16

3 years ago

1.7.17

3 years ago

1.7.9

3 years ago

1.7.8

3 years ago

1.7.7

3 years ago

1.7.6

3 years ago

1.7.5

3 years ago

1.7.4

3 years ago

1.7.3

3 years ago

1.7.2

3 years ago

1.7.1

3 years ago

1.2.0

3 years ago

1.6.4

3 years ago

1.6.3

3 years ago

1.6.2

3 years ago

1.6.1

3 years ago

1.6.0

3 years ago

1.2.3

3 years ago

1.4.0

3 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.1.3-alpha.1

3 years ago

1.1.3-alpha.0

3 years ago

1.1.8-alpha.1

3 years ago

1.1.8-alpha.0

3 years ago

1.1.8

3 years ago

1.5.3

3 years ago

1.1.7

3 years ago

1.7.0

3 years ago

1.5.2

3 years ago

1.1.6

3 years ago

1.5.1

3 years ago

1.1.5

3 years ago

1.6.0-alpha.0

3 years ago

1.5.0

3 years ago

1.1.4

3 years ago

1.3.1

3 years ago

1.1.3

3 years ago

1.3.0

3 years ago

1.1.1

3 years ago

1.0.13-alpha.13

3 years ago

1.1.0

3 years ago

1.0.13-alpha.14

3 years ago

1.0.13-alpha.11

3 years ago

1.0.13-alpha.12

3 years ago

1.0.13-alpha.15

3 years ago

1.0.13-alpha.16

3 years ago

1.1.2

3 years ago

1.0.13-alpha.0

3 years ago

1.0.13-alpha.2

3 years ago

1.0.13-alpha.4

3 years ago

1.0.13-alpha.7

3 years ago

1.0.12-alpha.1

3 years ago

1.0.13-alpha.6

3 years ago

1.0.12-alpha.2

3 years ago

1.0.13-alpha.9

3 years ago

1.0.13-alpha.8

3 years ago

1.0.11

3 years ago

1.0.12-alpha.0

3 years ago

1.0.14

3 years ago

1.0.13-alpha.10

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.10

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago