QEasingCurve Class
QEasingCurve 클래스는 애니메이션 제어를 위한 완화 커브를 제공합니다. 더 보기...
Header: | #include <QEasingCurve> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- 상속된 멤버를 포함한 모든 멤버 목록
- QEasingCurve는 애니메이션 프레임워크의 일부입니다.
공용 유형
EasingFunction | |
enum | Type { Linear, InQuad, OutQuad, InOutQuad, OutInQuad, …, Custom } |
공용 함수
QEasingCurve(QEasingCurve::Type type = Linear) | |
QEasingCurve(const QEasingCurve &other) | |
QEasingCurve(QEasingCurve &&other) | |
~QEasingCurve() | |
void | addCubicBezierSegment(const QPointF &c1, const QPointF &c2, const QPointF &endPoint) |
void | addTCBSegment(const QPointF &nextPoint, qreal t, qreal c, qreal b) |
qreal | amplitude() const |
QEasingCurve::EasingFunction | customType() const |
qreal | overshoot() const |
qreal | period() const |
void | setAmplitude(qreal amplitude) |
void | setCustomType(QEasingCurve::EasingFunction func) |
void | setOvershoot(qreal overshoot) |
void | setPeriod(qreal period) |
void | setType(QEasingCurve::Type type) |
void | swap(QEasingCurve &other) |
QList<QPointF> | toCubicSpline() const |
QEasingCurve::Type | type() const |
qreal | valueForProgress(qreal progress) const |
QEasingCurve & | operator=(QEasingCurve &&other) |
QEasingCurve & | operator=(const QEasingCurve &other) |
관련 비회원
bool | operator!=(const QEasingCurve &lhs, const QEasingCurve &rhs) |
QDataStream & | operator<<(QDataStream &stream, const QEasingCurve &easing) |
bool | operator==(const QEasingCurve &lhs, const QEasingCurve &rhs) |
QDataStream & | operator>>(QDataStream &stream, QEasingCurve &easing) |
상세 설명
완만 곡선은 0과 1 사이의 보간 속도를 제어하는 함수를 설명합니다. 이징 커브를 사용하면 한 값에서 다른 값으로 전환할 때 단순한 일정한 속도보다 더 자연스럽게 보이도록 할 수 있습니다. QEasingCurve 클래스는 보통 QVariantAnimation 및 QPropertyAnimation 클래스와 함께 사용되지만 단독으로 사용할 수도 있습니다. 일반적으로 영속에서 보간을 가속하거나(이지 인) 영속으로 감속(이지 아웃)하는 데 사용됩니다. 이즈 인과 이즈 아웃은 동일한 이완 커브에 결합할 수도 있습니다.
보간 속도를 계산하기 위해 보간 곡선은 valueForProgress() 함수를 제공하며, 여기서 progress 인수는 보간 진행률을 지정합니다: 0은 보간의 시작 값이고 1은 보간의 끝 값입니다. 반환되는 값은 보간의 유효 진행률입니다. 반환된 값이 모든 입력 값에 대해 입력 값과 동일한 경우 보간 곡선은 선형 곡선이 됩니다. 이것이 기본 동작입니다.
예를 들어
QEasingCurve easing(QEasingCurve::InOutQuad); for (qreal t = 0.0; t < 1.0; t += 0.1) qWarning() << "Effective progress" << t << "is" << easing.valueForProgress(t);
는 0과 1 사이의 보간 유효 진행률을 출력합니다.
QPropertyAnimation 을 사용하는 경우 연결된 보간 곡선을 사용하여 startValue와 endValue 사이의 보간 진행률을 제어합니다:
QPropertyAnimation animation; animation.setStartValue(0); animation.setEndValue(1000); animation.setDuration(1000); animation.setEasingCurve(QEasingCurve::InOutQuad);
진폭, 오버슈트 또는 주기를 설정하는 기능은 QEasingCurve 유형에 따라 다릅니다. 진폭 액세스는 탄성 및 바운스 커브와 같이 스프링처럼 작동하는 커브에 사용할 수 있습니다. 진폭을 변경하면 커브의 높이가 변경됩니다. 주기 액세스는 탄성 커브에만 사용할 수 있으며 주기를 높게 설정하면 바운스 속도가 느려집니다. InBack , OutBack, InOutBack, OutInBack 과 같은 "부메랑" 동작을 하는 커브에만 오버슈트 설정이 있습니다. 이러한 커브는 끝점을 넘어 보간하여 부메랑처럼 작동하여 끝점으로 돌아갑니다.
완화 커브 예시에는 QEasingCurve 유형의 샘플이 포함되어 있으며 커브 설정을 변경할 수 있습니다.
멤버 유형 문서
QEasingCurve::EasingFunction
이것은 다음 서명을 가진 함수에 대한 포인터에 대한 타입 정의입니다:
enum QEasingCurve::Type
완화 곡선의 유형입니다.
상수 | 값 |
---|---|
QEasingCurve::Linear | 0 |
선형(t) 함수에 대한 완화 곡선: 속도는 일정합니다.
Constant | 값 |
---|---|
QEasingCurve::InQuad | 1 |
이차(t^2) 함수에 대한 완화 곡선: 0 속도에서 가속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutQuad | 2 |
이차(t^2) 함수에 대한 완화 곡선: 영속으로 감속합니다.
Constant | 값 |
---|---|
QEasingCurve::InOutQuad | 3 |
이차(t^2) 함수에 대한 완화 곡선: 절반까지 가속한 다음 감속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutInQuad | 4 |
이차(t^2) 함수에 대한 완화 곡선: 절반까지 감속한 다음 가속합니다.
Constant | 값 |
---|---|
QEasingCurve::InCubic | 5 |
3차(t^3) 함수에 대한 완화 곡선: 영속에서 가속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutCubic | 6 |
입방(t^3) 함수에 대한 완화 곡선: 0 속도로 감속합니다.
Constant | 값 |
---|---|
QEasingCurve::InOutCubic | 7 |
입방(t^3) 함수에 대한 완화 곡선: 절반까지 가속한 다음 감속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutInCubic | 8 |
입방(t^3) 함수에 대한 완화 곡선: 절반까지 감속한 다음 가속합니다.
Constant | 값 |
---|---|
QEasingCurve::InQuart | 9 |
2차(t^4) 함수에 대한 완화 곡선: 영속에서 가속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutQuart | 10 |
이차(t^4) 함수에 대한 완화 곡선: 영속으로 감속합니다.
Constant | 값 |
---|---|
QEasingCurve::InOutQuart | 11 |
이차(t^4) 함수에 대한 완화 곡선: 절반까지 가속한 다음 감속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutInQuart | 12 |
이차(t^4) 함수에 대한 완화 곡선: 절반까지 감속한 다음 가속합니다.
Constant | 값 |
---|---|
QEasingCurve::InQuint | 13 |
5차(t^5) 이완 함수에 대한 이완 커브: 영속에서 가속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutQuint | 14 |
5차(t^5) 함수에 대한 완화 커브: 영속으로 감속합니다.
Constant | 값 |
---|---|
QEasingCurve::InOutQuint | 15 |
5차(t^5) 함수에 대한 완화 곡선: 절반까지 가속한 다음 감속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutInQuint | 16 |
5차(t^5) 함수에 대한 완화 곡선: 절반까지 감속한 다음 가속합니다.
Constant | 값 |
---|---|
QEasingCurve::InSine | 17 |
사인 곡선(sin(t)) 함수에 대한 완화 곡선: 영속에서 가속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutSine | 18 |
사인 곡선(sin(t)) 함수에 대한 완화 곡선: 영속으로 감속합니다.
Constant | 값 |
---|---|
QEasingCurve::InOutSine | 19 |
사인 곡선(sin(t)) 함수에 대한 완화 곡선: 절반까지 가속한 다음 감속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutInSine | 20 |
사인 곡선(sin(t)) 함수에 대한 완화 곡선: 절반까지 감속한 다음 가속합니다.
Constant | 값 |
---|---|
QEasingCurve::InExpo | 21 |
지수(2^t) 함수에 대한 완화 곡선: 0 속도에서 가속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutExpo | 22 |
지수(2^t) 함수에 대한 완화 곡선: 영속으로 감속합니다.
Constant | 값 |
---|---|
QEasingCurve::InOutExpo | 23 |
지수(2^t) 함수에 대한 완화 곡선: 절반까지 가속한 다음 감속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutInExpo | 24 |
지수(2^t) 함수에 대한 완화 곡선: 절반까지 감속한 다음 가속합니다.
Constant | 값 |
---|---|
QEasingCurve::InCirc | 25 |
원형(sqrt(1-t^2)) 함수에 대한 완화 곡선: 영속에서 가속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutCirc | 26 |
원형 (sqrt(1-t^2)) 함수에 대한 완화 곡선: 영속으로 감속하는 곡선입니다.
Constant | 값 |
---|---|
QEasingCurve::InOutCirc | 27 |
원형 (sqrt(1-t^2)) 함수에 대한 완화 곡선: 절반까지 가속한 다음 감속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutInCirc | 28 |
원형 (sqrt(1-t^2)) 함수에 대한 완화 곡선: 절반까지 감속한 다음 가속합니다.
Constant | 값 |
---|---|
QEasingCurve::InElastic | 29 |
탄성(기하급수적으로 감쇠하는 사인파) 함수에 대한 완화 곡선: 0 속도에서 가속합니다. 진폭 파라미터로 피크 진폭을, 주기 파라미터로 감쇠 주기를 설정할 수 있습니다.
상수 | 값 |
---|---|
QEasingCurve::OutElastic | 30 |
탄성(기하급수적으로 감쇠하는 사인파) 함수에 대한 완화 곡선: 제로 속도로 감속합니다. 진폭 파라미터로 피크 진폭을, 주기 파라미터로 감쇠 주기를 설정할 수 있습니다.
상수 | 값 |
---|---|
QEasingCurve::InOutElastic | 31 |
탄성(기하급수적으로 감쇠하는 사인파) 함수에 대한 완화 곡선: 절반까지 가속한 다음 감속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutInElastic | 32 |
탄성(지수 함수) 함수에 대한 완화 곡선: 절반까지 감속한 다음 가속합니다.
Constant | 값 |
---|---|
QEasingCurve::InBack | 33 |
백(오버슈팅 큐빅 함수: (s+1)*t^3 - s*t^2) 완화 곡선: 0 속도에서 가속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutBack | 34 |
후진에 대한 이완 곡선(오버슈팅 큐빅 함수: (s+1)*t^3 - s*t^2) 이완 아웃: 영속으로 감속합니다.
Constant | 값 |
---|---|
QEasingCurve::InOutBack | 35 |
백에 대한 이완 곡선(오버슈팅 큐빅 함수: (s+1)*t^3 - s*t^2) 이완 인/아웃: 절반까지 가속한 다음 감속합니다.
상수 | 값 |
---|---|
QEasingCurve::OutInBack | 36 |
백(오버슈팅 큐빅 이완: (s+1)*t^3 - s*t^2) 이완 아웃/인 커브: 절반까지 감속한 다음 가속합니다.
상수 | 값 |
---|---|
QEasingCurve::InBounce | 37 |
바운스(기하급수적으로 감쇠하는 포물선 바운스) 함수에 대한 완화 곡선: 0 속도에서 가속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutBounce | 38 |
바운스(기하급수적으로 감쇠하는 포물선 바운스) 함수에 대한 완화 곡선: 0 속도에서 감속합니다.
Constant | 값 |
---|---|
QEasingCurve::InOutBounce | 39 |
바운스(기하급수적으로 감쇠하는 포물선형 바운스) 함수 이완 인/아웃에 대한 이완 커브: 중간까지 가속한 다음 감속합니다.
Constant | 값 |
---|---|
QEasingCurve::OutInBounce | 40 |
바운스(기하급수적으로 감쇠하는 포물선 바운스) 함수 이완 인/아웃에 대한 이완 커브: 절반까지 감속한 다음 가속합니다.
Constant | 값 | 설명 |
---|---|---|
QEasingCurve::BezierSpline | 45 | 큐빅 베지어 스플라인을 사용하여 커스텀 완화 커브를 정의할 수 있습니다. |
QEasingCurve::TCBSpline | 46 | TCB 스플라인을 사용하여 커스텀 완화 커브를 정의할 수 있습니다. |
QEasingCurve::Custom | 47 | 사용자가 setCustomType()로 커스텀 커브 유형을 지정한 경우 반환됩니다. 이 값으로 setType()를 호출할 수는 없지만 type()는 반환할 수 있습니다. |
addCubicBezierSegment() 및 addTCBSegment()도 참조하십시오 .
멤버 함수 문서
QEasingCurve::QEasingCurve(QEasingCurve::Type type = Linear)
주어진 type 의 완화 곡선을 구축합니다.
QEasingCurve::QEasingCurve(const QEasingCurve &other)
other 의 복사본을 생성합니다.
[noexcept]
QEasingCurve::QEasingCurve(QEasingCurve &&other)
Move - QEasingCurve 인스턴스를 생성하여 other 이 가리키고 있던 것과 동일한 객체를 가리키도록 합니다.
[noexcept]
QEasingCurve::~QEasingCurve()
파괴자.
void QEasingCurve::addCubicBezierSegment(const QPointF &c1, const QPointF &c2, const QPointF &endPoint)
사용자 지정 완화 곡선을 정의하기 위해 큐빅 베지어 스플라인의 세그먼트를 추가합니다. type ()가 QEasingCurve::BezierSpline 인 경우에만 적용됩니다. 스플라인은 암시적으로 (0.0, 0.0)에서 시작하여 (1.0, 1.0)에서 끝나야 유효한 완화 곡선이 됩니다. c1 및 c2 은 곡선을 그리는 데 사용되는 제어점이며 endPoint 은 곡선의 끝점입니다.
void QEasingCurve::addTCBSegment(const QPointF &nextPoint, qreal t, qreal c, qreal b)
사용자 지정 완화 곡선을 정의하기 위해 TCB 베지어 스플라인의 세그먼트를 추가합니다. type ()가 QEasingCurve::TCBSpline 인 경우에만 적용 가능합니다. 스플라인은 (0.0, 0.0)에서 명시적으로 시작하고 (1.0, 1.0)에서 끝나야 유효한 완화 곡선이 됩니다. 장력 t 은 탄젠트 벡터의 길이를 변경합니다. 연속성 c 은 접선 사이의 변화의 선명도를 변경합니다. 바이어스 b 는 탄젠트 벡터의 방향을 변경합니다. nextPoint 은 샘플 위치입니다. 세 매개변수 모두 -1에서 1 사이에서 유효하며 제어점의 탄젠트를 정의합니다. 세 파라미터가 모두 0이면 결과 스플라인은 캣멀-롬 스플라인이 됩니다. 외부 탄젠트가 정의되지 않았으므로 시작점과 끝점은 항상 -1과 1의 바이어스를 갖습니다.
qreal QEasingCurve::amplitude() const
진폭을 반환합니다. 모든 커브 유형에 적용되는 것은 아닙니다. 바운스 및 탄성 커브( type() QEasingCurve::InBounce, QEasingCurve::OutBounce, QEasingCurve::InOutBounce, QEasingCurve::OutInBounce, QEasingCurve::InElastic, QEasingCurve::OutElastic, QEasingCurve::InOutElastic 또는 QEasingCurve::OutInElastic 의 커브)에만 적용됩니다.
setAmplitude()도 참조하세요 .
QEasingCurve::EasingFunction QEasingCurve::customType() const
사용자 정의 완화 곡선에 대한 함수 포인터를 반환합니다. type ()가 QEasingCurve::Custom 을 반환하지 않으면 이 함수는 0을 반환합니다.
setCustomType()도 참조하세요 .
qreal QEasingCurve::overshoot() const
오버슈트를 반환합니다. 모든 커브 유형에 적용되는 것은 아닙니다. type ()가 QEasingCurve::InBack, QEasingCurve::OutBack, QEasingCurve::InOutBack 또는 QEasingCurve::OutInBack 인 경우에만 적용됩니다.
setOvershoot()도 참조하세요 .
qreal QEasingCurve::period() const
기간을 반환합니다. 모든 커브 유형에 적용되는 것은 아닙니다. type ()가 QEasingCurve::InElastic, QEasingCurve::OutElastic, QEasingCurve::InOutElastic 또는 QEasingCurve::OutInElastic 인 경우에만 적용됩니다.
setPeriod()도 참조하세요 .
void QEasingCurve::setAmplitude(qreal amplitude)
진폭을 amplitude 으로 설정합니다.
이렇게 하면 바운스의 진폭 또는 탄성 "스프링" 효과의 진폭이 설정됩니다. 숫자가 높을수록 진폭이 커집니다.
amplitude()도 참조하세요 .
void QEasingCurve::setCustomType(QEasingCurve::EasingFunction func)
함수에서 사용자가 정의한 커스텀 완화 커브를 설정합니다 func. 이 함수의 시그너처는 qreal myEasingFunction(qreal progress)이며, 진행률과 반환값은 0과 1 사이에서 정규화된 것으로 간주됩니다. (경우에 따라 반환값이 이 범위를 벗어날 수 있습니다) 이 함수를 호출하면 type()는 QEasingCurve::Custom 을 반환합니다. func 은 0이 될 수 없습니다.
customType() 및 valueForProgress()도 참조하세요 .
void QEasingCurve::setOvershoot(qreal overshoot)
오버슈트를 overshoot 로 설정합니다.
0은 오버슈트를 생성하지 않으며 기본값인 1.70158은 10%의 오버슈트를 생성합니다.
overshoot()도 참조하세요 .
void QEasingCurve::setPeriod(qreal period)
주기를 period 로 설정합니다. 주기 값을 작게 설정하면 커브의 주파수가 높아집니다. 주기가 크면 주파수가 작아집니다.
period()도 참조하세요 .
void QEasingCurve::setType(QEasingCurve::Type type)
완화 곡선 유형을 type 로 설정합니다.
type()도 참조하세요 .
[noexcept]
void QEasingCurve::swap(QEasingCurve &other)
이 커브를 other 로 바꿉니다. 이 작업은 매우 빠르며 실패하지 않습니다.
QList<QPointF> QEasingCurve::toCubicSpline() const
커스텀 완화 곡선을 정의하는 cubicBezierSpline을 반환합니다. 이완 커브에 사용자 지정 베지어 이완 커브가 없으면 목록은 비어 있습니다.
QEasingCurve::Type QEasingCurve::type() const
완화 곡선의 유형을 반환합니다.
setType()도 참조하세요 .
qreal QEasingCurve::valueForProgress(qreal progress) const
완화 곡선의 유효 진행률을 progress 에서 반환합니다. progress 은 0에서 1 사이여야 하지만, 반환되는 유효 진행률은 이 범위를 벗어날 수 있습니다. 예를 들어 QEasingCurve::InBack 은 함수 시작 부분에 음수 값을 반환합니다.
[noexcept]
QEasingCurve &QEasingCurve::operator=(QEasingCurve &&other)
이동-이 other 인스턴스를 QEasingCurve 인스턴스에 할당합니다.
QEasingCurve &QEasingCurve::operator=(const QEasingCurve &other)
복사 other.
관련 비회원
[noexcept]
bool operator!=(const QEasingCurve &lhs, const QEasingCurve &rhs)
완화 곡선 lhs 과 rhs 을 비교하여 같지 않으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다. 또한 커브의 속성도 비교합니다.
operator==()도 참조하세요 .
QDataStream &operator<<(QDataStream &stream, const QEasingCurve &easing)
주어진 easing 커브를 주어진 stream 에 쓰고 스트림에 대한 참조를 반환합니다.
Qt 데이터 유형 직렬화도참조하십시오 .
[noexcept]
bool operator==(const QEasingCurve &lhs, const QEasingCurve &rhs)
완화 곡선 lhs 과 rhs 을 비교하여 같으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다. 또한 커브의 속성도 비교합니다.
QDataStream &operator>>(QDataStream &stream, QEasingCurve &easing)
주어진 stream 에서 주어진 easing 곡선으로 완화 곡선을 읽고 스트림에 대한 참조를 반환합니다.
Qt 데이터 유형 직렬화도참조하십시오 .
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.