이 페이지에서

QEasingCurve Class

QEasingCurve 클래스는 애니메이션을 제어하기 위한 이징 곡선을 제공합니다. 더 보기...

헤더: #include <QEasingCurve>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

공개 유형

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)

정적 공용 멤버

(since 6.12) QEasingCurve fromCubicBezier(QPointF c1, QPointF c2)
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 클래스와 함께 사용되지만, 단독으로도 사용할 수 있습니다. 이 클래스는 주로 0 속도에서 가속하여 보간(이즈 인)하거나, 0 속도로 감속하여 보간(이즈 아웃)하는 데 사용됩니다. 또한 동일한 이징 커브 내에서 이즈 인과 이즈 아웃을 결합할 수도 있습니다.

보간 속도를 계산하기 위해 이징 커브는 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 유형에 따라 다릅니다. 진폭에 대한 액세스는 탄성(elastic) 및 바운스(bounce) 곡선과 같이 스프링처럼 작동하는 곡선에서 사용할 수 있습니다. 진폭을 변경하면 곡선의 높이가 변경됩니다. 주기(period) 설정은 탄성 곡선에서만 가능하며, 주기를 더 크게 설정하면 반동 속도가 느려집니다. 오버슈트(overshoot) 설정은 InBack, OutBack, InOutBack, OutInBack 과 같이 “부메랑” 동작을 보이는 곡선에서만 사용할 수 있습니다. 이러한 곡선은 끝점을 넘어 보간된 후 다시 끝점으로 돌아오며, 마치 부메랑처럼 동작합니다.

'Easing Curves Example'에는 QEasingCurve 유형의 예제가 포함되어 있으며, 곡선 설정을 변경할 수 있습니다.

멤버 유형 설명서

QEasingCurve::EasingFunction

다음과 같은 시그니처를 가진 함수 포인터에 대한 typedef입니다:

qreal myEasingFunction(qreal progress);

enum QEasingCurve::Type

완화 곡선의 유형.

일정값
QEasingCurve::Linear0

선형 함수의 그래프.

선형 (t) 함수에 대한 이징 곡선: 속도가 일정합니다.

상수값
QEasingCurve::InQuad1

비2차 함수의 그래프.

2차(t²) 함수에 대한 이징 곡선: 초기 속도가 0에서 가속합니다.

상수값
QEasingCurve::OutQuad2

a의 2차 함수의 그래프

2차 함수(t^2)에 대한 이징 곡선: 속도가 0으로 감속하는 경우.

상수값
QEasingCurve::InOutQuad3

InOutquad 2차 함수의 그래프

2차 함수(t^2)에 대한 이징 곡선: 중간 지점까지 가속한 후 감속합니다.

상수값
QEasingCurve::OutInQuad4

OutInquad 2차 함수의 그래프

2차 함수(t^2)에 대한 이징 곡선: 중간 지점까지 감속한 후, 가속합니다.

상수값
QEasingCurve::InCubic5

InCubic 함수의 그래프

3차(t^3) 함수의 이징 곡선: 속도 0에서 가속합니다.

상수값
QEasingCurve::OutCubic6

OutCubic 함수의 그래프

3차(t^3) 함수에 대한 이징 곡선: 속도가 0으로 감속하는 경우.

상수값
QEasingCurve::InOutCubic7

InOutCubic 함수의 그래프.

3차(t^3) 함수에 대한 이징 곡선: 중간 지점까지 가속한 후 감속합니다.

상수값
QEasingCurve::OutInCubic8

OutInCubic 함수의 그래프.

3차 함수(t^3)에 대한 이징 곡선: 중간 지점까지 감속한 후, 가속합니다.

상수값
QEasingCurve::InQuart9

InQuartic 함수의 그래프.

4차(t^4) 함수의 이징 곡선: 초기 속도가 0에서 가속합니다.

상수값
QEasingCurve::OutQuart10

OutQuartic 함수의 그래프.

4차 함수(t^4)의 이징 곡선: 속도가 0으로 감속하는 경우.

상수값
QEasingCurve::InOutQuart11

InOutQuartic 함수의 그래프.

4차 함수(t^4)에 대한 이징 곡선: 중간 지점까지 가속한 후 감속합니다.

상수값
QEasingCurve::OutInQuart12

OutInQuartic 함수의 그래프.

4차 함수(t^4)에 대한 이징 곡선: 중간 지점까지 감속한 후, 가속합니다.

상수값
QEasingCurve::InQuint13

5차 함수의 그래프

5차(t^5) 이징 곡선: 초기 속도가 0인 상태에서 가속합니다.

상수값
QEasingCurve::OutQuint14

a OutQuintic 함수의 그래프

5차(t^5) 함수의 이징 곡선: 속도가 0으로 감속하는 경우.

상수값
QEasingCurve::InOutQuint15

InOutQuintic 함수의 그래프

5차 함수(t^5)에 대한 이징 곡선: 중간 지점까지 가속한 후 감속합니다.

상수값
QEasingCurve::OutInQuint16

OutInQuintic 함수의 그래프

5차 함수(t^5)에 대한 이징 곡선: 중간 지점까지 감속한 후, 가속합니다.

상수값
QEasingCurve::InSine17

비사인파 함수의 그래프

사인(sin(t)) 함수의 이징 곡선: 속도 0에서 가속합니다.

상수값
QEasingCurve::OutSine18

비정현파 함수의 그래프

사인(sin(t)) 함수에 대한 이징 곡선: 속도가 0으로 감속하는 경우.

상수값
QEasingCurve::InOutSine19

InOutSinusoidal 함수의 그래프

사인파(sin(t)) 함수에 대한 이징 곡선: 중간 지점까지 가속한 후 감속합니다.

상수값
QEasingCurve::OutInSine20

A의 OutInSinusoidal 함수 그래프

사인파(sin(t)) 함수에 대한 이징 곡선: 중간 지점까지 감속한 후, 가속합니다.

상수값
QEasingCurve::InExpo21

InExponential 함수의 그래프

지수 함수(2^t)에 대한 이징 곡선: 속도 0에서 가속합니다.

상수값
QEasingCurve::OutExpo22

a의 지수 함수의 그래프

지수 함수(2^t)에 대한 이징 곡선: 속도가 0으로 감속하는 경우.

상수값
QEasingCurve::InOutExpo23

InOutExponential 함수의 그래프

지수 함수(2^t)에 대한 이징 곡선: 중간 지점까지 가속한 후 감속합니다.

상수값
QEasingCurve::OutInExpo24

a OutInExponential 함수의 그래프

지수 함수(2^t)에 대한 이징 곡선: 중간 지점까지 감속한 후, 가속합니다.

상수값
QEasingCurve::InCirc25

InCircular 함수의 그래프

원형(sqrt(1-t^2)) 함수의 이징 곡선: 0 속도에서 가속합니다.

상수값
QEasingCurve::OutCirc26

OutCircular 함수의 그래프

원형(sqrt(1-t^2)) 함수에 대한 이징 곡선: 0 속도로 감속.

상수값
QEasingCurve::InOutCirc27

InOutCircular 함수의 그래프

원형(sqrt(1-t^2)) 함수에 대한 이징 곡선: 중간 지점까지 가속한 후 감속.

상수값
QEasingCurve::OutInCirc28

OutInCircular 함수의 그래프

원형(sqrt(1-t^2)) 함수에 대한 이징 곡선: 중간 지점까지 감속한 후, 가속합니다.

상수값
QEasingCurve::InElastic29

탄성/비탄성 함수의 그래프

탄성(지수적으로 감쇠하는 사인파) 함수에 대한 이징 곡선: 속도 0에서 가속합니다. 최대 진폭은 amplitude 매개변수로, 감쇠 주기는 period 매개변수로 설정할 수 있습니다.

상수값
QEasingCurve::OutElastic30

OutElastic 함수의 그래프

탄성(지수적으로 감쇠하는 사인파) 함수에 대한 이징 곡선: 속도가 0으로 감속하는 경우. 최대 진폭은 진폭 매개변수로, 감쇠 주기는 주기 매개변수로 설정할 수 있습니다.

상수값
QEasingCurve::InOutElastic31

InOutElastic 함수의 그래프

탄성(지수적으로 감쇠하는 사인파) 함수에 대한 이징 곡선: 중간 지점까지 가속한 후 감속합니다.

상수값
QEasingCurve::OutInElastic32

OutInElastic 함수의 그래프

탄성(지수적으로 감쇠하는 사인파) 함수에 대한 이징 곡선: 중간 지점까지 감속한 후, 가속합니다.

상수값
QEasingCurve::InBack33

InBack 함수의 그래프

백 이징(오버슈팅 3차 함수: (s+1)*t^3 - s*t^2) 이징 곡선: 0 속도에서 가속합니다.

상수값
QEasingCurve::OutBack34

OutBack 함수의 그래프

백(오버슈팅 3차 함수: (s+1)*t^3 - s*t^2) 이징 아웃: 0 속도로 감속하는 이징 곡선.

상수값
QEasingCurve::InOutBack35

a의 그래프

InOutBack 함수}

백(오버슈팅 3차 함수: (s+1)*t^3 - s*t^2)의 이징 곡선: 인/아웃 이징: 중간 지점까지 가속한 후 감속합니다.

상수값
QEasingCurve::OutInBack36

OutInBack 함수의 그래프

백(back)에 대한 이징 곡선 (오버슈팅 3차 이징: (s+1)*t^3 - s*t^2) 이징 아웃/인: 중간 지점까지 감속, 그 후 가속.

상수값
QEasingCurve::InBounce37

InBounce 함수의 그래프

바운스(지수적으로 감쇠하는 포물선형 바운스) 함수에 대한 이징 곡선: 속도 0에서 가속합니다.

상수값
QEasingCurve::OutBounce38

OutBounce 함수의 그래프

바운스(지수적으로 감쇠하는 포물선형 바운스) 함수의 이징 곡선: 0 속도에서 감속합니다.

상수값
QEasingCurve::InOutBounce39

InOutBounce 함수의 그래프

바운스(지수적으로 감쇠하는 포물선형 바운스) 함수의 이즈인/이즈아웃 이즈링 곡선: 중간 지점까지 가속한 후 감속합니다.

상수값
QEasingCurve::OutInBounce40

OutInBounce 함수의 그래프

바운스(지수적으로 감쇠하는 포물선형 바운스) 함수의 이즈인/이즈아웃 이즈링 곡선: 중간 지점까지 감속한 후 가속합니다.

상수값설명
QEasingCurve::BezierSpline453차 베지어 스플라인을 사용하여 사용자 정의 이징 곡선을 정의할 수 있습니다.
QEasingCurve::TCBSpline46TCB 스플라인을 사용하여 사용자 정의 이징 곡선을 정의할 수 있습니다.
QEasingCurve::Custom47사용자가 ` setCustomType()`를 통해 사용자 정의 곡선 유형을 지정한 경우 이 값이 반환됩니다. 이 값을 사용하여 ` setType()`를 호출할 수는 없지만, ` type()`는 이 값을 반환할 수 있습니다.

addCubicBezierSegment() 및 addTCBSegment()도 참조하십시오 .

멤버 함수 문서

QEasingCurve::QEasingCurve(QEasingCurve::Type type = Linear)

주어진 type 의 이징 곡선을 생성합니다.

QEasingCurve::QEasingCurve(const QEasingCurve &other)

other 의 복사본을 생성하십시오.

[noexcept] QEasingCurve::QEasingCurve(QEasingCurve &&other)

QEasingCurve 인스턴스를 생성하여, 이 인스턴스가 ` other `가 가리키던 것과 동일한 객체를 가리키도록 합니다.

[noexcept] QEasingCurve::~QEasingCurve()

소멸자.

void QEasingCurve::addCubicBezierSegment(const QPointF &c1, const QPointF &c2, const QPointF &endPoint)

사용자 정의 이즈링 곡선을 정의하기 위해 3차 베지어 스플라인 세그먼트를 추가합니다. type()가 QEasingCurve::BezierSpline 인 경우에만 적용됩니다. 유효한 이징 곡선이 되려면 스플라인이 암시적으로 (0.0, 0.0)에서 시작하고 (1.0, 1.0)에서 끝나야 합니다. c1 와 c2 는 곡선을 그리는 데 사용되는 제어점입니다. endPoint 는 곡선의 끝점입니다.

fromCubicBezier()도 참조하십시오 .

void QEasingCurve::addTCBSegment(const QPointF &nextPoint, qreal t, qreal c, qreal b)

사용자 정의 이징 곡선을 정의하기 위해 TCB 베지어 스플라인의 한 구간을 추가합니다. 이는 type()이 QEasingCurve::TCBSpline 인 경우에만 적용됩니다. 유효한 이징 곡선이 되려면 스플라인이 반드시 (0.0, 0.0)에서 시작하고 (1.0, 1.0)에서 끝나야 합니다. tension t 은 접선 벡터의 길이를 변경합니다. continuity c 는 접선 간의 변화 정도를 조절합니다. bias b 는 접선 벡터의 방향을 변경합니다. nextPoint 는 샘플 위치입니다. 이 세 매개변수는 모두 -1과 1 사이에서 유효하며, 제어점의 접선을 정의합니다. 세 매개변수가 모두 0인 경우, 결과 스플라인은 캣뮬-롬(Catmull-Rom) 스플라인이 됩니다. 바깥쪽 접선이 정의되지 않기 때문에 시작점과 끝점의 바이어스는 항상 -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()도 참조하십시오 .

[static, since 6.12] QEasingCurve QEasingCurve::fromCubicBezier(QPointF c1, QPointF c2)

지정된 제어점 c1, c2 을 갖는 3차 베지어 곡선을 반환합니다.

3차 베지어 곡선은 C0, C1, C2, C3의 네 개의 제어점으로 정의됩니다. C0와 C3는 각각 시작점과 끝점에 해당합니다. 이 함수는 시작점 C0이 (0, 0)으로, 끝점 C3이 (1, 1)로 고정된 3차 베지어 곡선을 반환합니다.

이 함수는 편의 함수이며, ` addCubicBezierSegment(c1, c2, QPointF(1, 1))`을 호출하는 것과 동일합니다. 더 복잡한 3차 베지어 스플라인을 생성해야 하는 경우, 대신 ` addCubicBezierSegment()` 함수를 사용하십시오.

이 함수는 Qt 6.12에서 도입되었습니다.

addCubicBezierSegment()도 참조하십시오 .

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)`이며, 여기서 `progress` 와 반환 값은 0과 1 사이로 정규화된 것으로 간주됩니다. (경우에 따라 반환 값이 해당 범위를 벗어날 수도 있습니다.) 이 함수를 호출한 후 ` type()`는 ` QEasingCurve::Custom`를 반환합니다. ` func `는 ` nullptr`일 수 없습니다.

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 에 기록하고, 해당 스트림에 대한 참조를 반환합니다.

경고: QEasingCurve::Custom 유형의 이징 곡선(즉, 사용자 정의 이징 함수를 사용하는 곡선)을쓰는 기능은 지원되지 않습니다.

Qt 데이터 유형 직렬화도 참조하십시오 .

[noexcept] bool operator==(const QEasingCurve &lhs, const QEasingCurve &rhs)

이 함수는 이완 곡선 lhs 과 rhs 을 비교하여, 두 곡선이 같으면 true 을 반환하고, 그렇지 않으면 false 을 반환합니다. 또한 곡선의 속성도 비교합니다.

QDataStream &operator>>(QDataStream &stream, QEasingCurve &easing)

지정된 ` stream `에서 이징 곡선을 읽어 지정된 ` easing ` 곡선으로 변환한 후, 해당 스트림에 대한 참조를 반환합니다.

Qt 데이터 유형 직렬화항목도 참조하십시오 .

© 2026 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.