qml Friction详解
1、概述
Friction
是 Qt Quick 3D 中的一个 QML 类型,主要用于模拟物体与表面之间的摩擦力。摩擦力通常用于调整物体的运动状态,特别是模拟物体在某个表面上滑动时所产生的阻力。它可以与其他物理效果(如重力或吸引力)结合使用,以实现更加真实的物理模拟,特别在3D场景中的物理交互中,摩擦力的设置至关重要。
2、重要属性
-
friction
- 类型:
real
- 描述:摩擦系数的数值,表示摩擦力的大小。默认值为 0.5,表示一定程度的摩擦力。值越大,摩擦越强,物体越难滑动。
- 类型:
-
velocity
- 类型:
Vector3
- 描述:表示物体的速度。摩擦力会根据速度的大小和方向来调整物体的运动状态,通常速度越大,摩擦力越大。
- 类型:
-
enabled
- 类型:
bool
- 描述:该属性决定是否启用摩擦效果。如果设置为
false
,摩擦力将不作用于物体运动。
- 类型:
-
surfaceType
- 类型:
enum
- 描述:指定摩擦力所应用的表面类型,影响摩擦系数的计算。不同的表面类型会有不同的摩擦效果。
- 类型:
3、重要方法
-
applyFriction()
- 描述:此方法用于将摩擦力应用于物体的速度。通常通过
velocity
属性和friction
属性计算摩擦力的大小,并修改物体的运动状态。
- 描述:此方法用于将摩擦力应用于物体的速度。通常通过
-
reset()
- 描述:重置摩擦效果的所有属性,通常用于将摩擦力恢复到默认值,或者在物体状态重置时调用。
4、重要信号
-
frictionChanged
- 类型:
signal
- 描述:当
friction
属性的值发生变化时触发此信号。常用于动态调整物体的摩擦力效果。
- 类型:
-
enabledChanged
- 类型:
signal
- 描述:当
enabled
属性发生变化时触发此信号。它通知其他组件摩擦效果是否被启用或禁用。
- 类型:
-
velocityChanged
- 类型:
signal
- 描述:当
velocity
属性发生变化时触发此信号。它通常用于监测物体的运动状态,并根据速度变化调整摩擦效果。
- 类型:
5、常用枚举类型
SurfaceType
- 描述:此枚举定义了不同类型的表面,每种表面类型对应不同的摩擦系数。
Smooth
: 平滑表面,通常具有较低的摩擦力。Rough
: 粗糙表面,通常具有较高的摩擦力。Slippery
: 光滑表面,摩擦力极低,物体会轻松滑动。Sticky
: 粘性表面,摩擦力非常高,物体移动非常困难。
- 描述:此枚举定义了不同类型的表面,每种表面类型对应不同的摩擦系数。
Window {
width: 480; height: 240
visible: true
Rectangle {
id: root
width: 480; height: 240
color: "#1F1F1F"
ParticleSystem {
id: particleSystem
}
ImageParticle {
source: "res/particle.png"
system: particleSystem
color: '#FFD700'
colorVariation: 0.2
rotation: 0
rotationVariation: 45
rotationVelocity: 15
rotationVelocityVariation: 15
entryEffect: ImageParticle.Scale
}
Emitter {
id: emitter
anchors.left: parent.left
anchors.verticalCenter: parent.verticalCenter
width: 1; height: 20
system: particleSystem
emitRate: 40
lifeSpan: 6400
lifeSpanVariation: 400
size: 32
velocity: AngleDirection {
angle: 0
angleVariation: 15
magnitude: 100
magnitudeVariation: 100
}
}
// M1>>
Friction {
anchors.horizontalCenter: parent.horizontalCenter
width: 240; height: 120
system: particleSystem
factor : 0.8
threshold: 25
Tracer {}
}
// <<M1
}
}
觉得有帮助的话,打赏一下呗。。
需要商务合作(定制程序)的欢迎私信!!
原文地址:https://blog.csdn.net/ckg3824278/article/details/145161013
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!