Garry's Mod Wiki

math.QuadraticBezier

  Vector math.QuadraticBezier( number frac, Vector p0, Vector p1, Vector p2 )

Description

Lerp point between 3 control points with quadratic bezier.

See math.CubicBezier for a function which works with 4 control points.

Arguments

1 number frac
The fraction for finding the result. This number is clamped between 0 and 1.
2 Vector p0
First control point
3 Vector p1
Tangent
4 Vector p2
Second control point

Returns

1 Vector
Point between control points at the specified fraction

Example

Demonstrates the use of this function.

local points = { Vector( 128, 128 ), Vector( 384, 128 ), Vector( 384, 384 ) } hook.Add( "HUDPaint", "math.QuadraticBezier", function() local frac = RealTime() % 1 local point = math.QuadraticBezier( frac, unpack( points ) ) surface.SetDrawColor( 255, 255, 0 ) surface.DrawRect( point.x - 4, point.y - 4, 8, 8 ) surface.DrawRect( points[1].x - 4, points[1].y - 4, 8, 8 ) surface.DrawRect( points[2].x - 4, points[2].y - 4, 8, 8 ) surface.DrawRect( points[3].x - 4, points[3].y - 4, 8, 8 ) end )
Output: