SkPoint holds two 32-bit floating point coordinates.
Sets fX to x, fY to y. Used both to set SkPoint and vector.
SkPoint (x, y)
all equal
set() iset[2]() SkIPoint::Make
Returns x-axis value of SkPoint or vector.
fX
pt1.fX == pt1.x()
y() SkIPoint::x()
Returns y-axis value of SkPoint or vector.
fY
pt1.fY == pt1.y()
x() SkIPoint::y()
Returns true if fX and fY are both zero.
true if fX is zero and fY is zero
pt.fX=+0 pt.fY=-0 pt.isZero() == true
isFinite SkIPoint::isZero
Sets fX to x and fY to y.
pt1 == pt2
iset[2]() Make
Sets fX to x and fY to y, promoting integers to SkScalar values.
Assigning a large integer value directly to fX or fY may cause a compiler error, triggered by narrowing conversion of int to SkScalar. This safely casts x and y to avoid the error.
set Make SkIPoint::set
Sets fX to p.fX and fY to p.fY, promoting integers to SkScalar values.
Assigning an SkIPoint containing a large integer value directly to fX or fY may cause a compiler error, triggered by narrowing conversion of int to SkScalar. This safely casts p.fX and p.fY to avoid the error.
iPt: -2147483647, 2147483647 fPt: -2.14748e+09, 2.14748e+09
set Make SkIPoint::set
Sets fX to absolute value of pt.fX; and fY to absolute value of pt.fY.
pt: 0, -0 abs: 0, 0 pt: -1, -2 abs: 1, 2 pt: inf, -inf abs: inf, inf pt: nan, -nan abs: nan, nan
set Make negate
Adds offset to each SkPoint in points array with count entries.
offset operator+=(const SkVector& v)
Adds offset (dx, dy) to each SkPoint in points array of length count.
offset operator+=(const SkVector& v)
Adds offset (dx, dy) to SkPoint.
Offset[2] operator+=(const SkVector& v)
Returns the Euclidean distance from origin, computed as:
sqrt(fX * fX + fY * fY)
.
straight-line distance to origin
distanceToOrigin Length setLength[2] Distance
Returns the Euclidean distance from origin, computed as:
sqrt(fX * fX + fY * fY)
.
straight-line distance to origin
length Length setLength[2] Distance
Scales (fX, fY) so that length() returns one, while preserving ratio of fX to fY, if possible. If prior length is nearly zero, sets vector to (0, 0) and returns false; otherwise returns true.
true if former length is not zero or nearly zero
Normalize setLength[2] length Length
Sets vector to (x, y) scaled so length() returns one, and so that (fX, fY) is proportional to (x, y). If (x, y) length is nearly zero, sets vector to (0, 0) and returns false; otherwise returns true.
true if (x, y) length is not zero or nearly zero
normalize setLength[2]
Scales vector so that distanceToOrigin() returns length, if possible. If former length is nearly zero, sets vector to (0, 0) and return false; otherwise returns true.
true if former length is not zero or nearly zero
length Length setNormalize setAbs
Sets vector to (x, y) scaled to length, if possible. If former length is nearly zero, sets vector to (0, 0) and return false; otherwise returns true.
true if (x, y) length is not zero or nearly zero
length Length setNormalize setAbs
Sets dst to SkPoint times scale. dst may be SkPoint to modify SkPoint in place.
operator*(SkScalar scale) const operator*=(SkScalar scale) setLength[2]
Scales SkPoint in place by scale.
operator*(SkScalar scale) const operator*=(SkScalar scale) setLength[2]
Changes the sign of fX and fY.
pt: 0, -0 negate: -0, 0 pt: -1, -2 negate: 1, 2 pt: inf, -inf negate: -inf, inf pt: nan, -nan negate: -nan, nan
operator-() const setAbs
Returns SkPoint changing the signs of fX and fY.
SkPoint as (-fX, -fY)
pt: 0, -0 negate: -0, 0 pt: -1, -2 negate: 1, 2 pt: inf, -inf negate: -inf, inf pt: nan, -nan negate: -nan, nan
negate operator-(const SkPoint& a, const SkPoint& b) operator-=(const SkVector& v) SkIPoint::operator-() const
Adds Vector v to Point. Sets Point to: (fX + v.fX, fY + v.fY).
offset() operator+(const SkPoint& a, const SkVector& b) SkIPoint::operator+=(const SkIVector& v)
Subtracts Vector v from Point. Sets Point to: (fX - v.fX, fY - v.fY).
offset() operator-(const SkPoint& a, const SkPoint& b) SkIPoint::operator-=(const SkIVector& v)
Returns SkPoint multiplied by scale.
SkPoint as (fX * scale, fY * scale)
operator*=(SkScalar scale) scale[2]() setLength[2] setNormalize
Multiplies Point by scale. Sets Point to: (fX * scale, fY * scale).
reference to Point
operator*(SkScalar scale) const scale[2]() setLength[2] setNormalize
Returns true if both fX and fY are measurable values.
true for values other than infinities and NaN
pt: 0, -0 finite: true pt: -1, -2 finite: true pt: inf, 1 finite: false pt: nan, -1 finite: false
SkRect::isFinite SkPath::isFinite
Returns true if SkPoint is equivalent to SkPoint constructed from (x, y).
true if SkPoint equals (x, y)
pt: 0, -0 == pt pt: -1, -2 == pt pt: inf, 1 == pt pt: nan, -1 != pt
operator==(const SkPoint& a, const SkPoint& b)
Returns true if a is equivalent to b.
true if a.fX == b.fX and a.fY == b.fY
pt: 0, -0 == pt pt: -1, -2 == pt pt: inf, 1 == pt pt: nan, -1 != pt
equals() operator!=(const SkPoint& a, const SkPoint& b)
Returns true if a is not equivalent to b.
true if a.fX != b.fX or a.fY != b.fY
pt: 0, -0 == pt pt: -1, -2 == pt pt: inf, 1 == pt pt: nan, -1 != pt
operator==(const SkPoint& a, const SkPoint& b) equals()
Returns Vector from b to a, computed as (a.fX - b.fX, a.fY - b.fY).
Can also be used to subtract Vector from Point, returning Point. Can also be used to subtract Vector from Vector, returning Vector.
Vector from b to a
operator-=(const SkVector& v) offset()
Returns Point resulting from Point a offset by Vector b, computed as: (a.fX + b.fX, a.fY + b.fY).
Can also be used to offset Point b by Vector a, returning Point. Can also be used to add Vector to Vector, returning Vector.
Point equal to a offset by b
operator+=(const SkVector& v) offset()
Returns the Euclidean distance from origin, computed as:
sqrt(x * x + y * y)
.
straight-line distance to origin
length() Distance setLength[2]
Scales (vec->fX, vec->fY) so that length() returns one, while preserving ratio of vec->fX to vec->fY, if possible. If original length is nearly zero, sets vec to (0, 0) and returns zero; otherwise, returns length of vec before vec is scaled.
Returned prior length may be SK_ScalarInfinity if it can not be represented by SkScalar.
Note that normalize() is faster if prior length is not required.
original vec length
normalize() setLength[2] Length
Returns the Euclidean distance between a and b.
straight-line distance from a to b
length() setLength[2]
Returns the dot product of vector a and vector b.
product of input magnitudes and cosine of the angle between them
dot CrossProduct
Returns the cross product of vector a and vector b.
a and b form three-dimensional vectors with z-axis value equal to zero. The cross product is a three-dimensional vector with x-axis and y-axis values equal to zero. The cross product z-axis component is returned.
area spanned by vectors signed by angle direction
cross DotProduct
Returns the cross product of vector and vec.
Vector and vec form three-dimensional vectors with z-axis value equal to zero. The cross product is a three-dimensional vector with x-axis and y-axis values equal to zero. The cross product z-axis component is returned.
area spanned by vectors signed by angle direction
CrossProduct dot
Returns the dot product of vector and vector vec.
product of input magnitudes and cosine of the angle between them
DotProduct cross
SkVector provides an alternative name for SkPoint. SkVector and SkPoint can be used interchangeably for all purposes.