1 SkPoint Reference 2 === 3 4 5 <a name='SkPoint'></a> 6 7 --- 8 9 <pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0"> 10 struct <a href='SkPoint_Reference#SkPoint'>SkPoint</a> { 11 12 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_fX'>fX</a>; 13 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_fY'>fY</a>; 14 15 static constexpr <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPoint_Make'>Make</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y); 16 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_x'>x()</a> const; 17 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_y'>y()</a> const; 18 bool <a href='#SkPoint_isZero'>isZero</a>() const; 19 void <a href='#SkPoint_set'>set</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y); 20 void <a href='#SkPoint_iset'>iset</a>(int32_t x, int32_t y); 21 void <a href='#SkPoint_iset'>iset</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& p); 22 void <a href='#SkPoint_setAbs'>setAbs</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& pt); 23 static void <a href='#SkPoint_Offset'>Offset</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#Point'>points</a>[], int count, const <a href='SkPoint_Reference#SkVector'>SkVector</a>& offset); 24 static void <a href='#SkPoint_Offset'>Offset</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#Point'>points</a>[], int count, <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy); 25 void <a href='#SkPoint_offset'>offset</a>(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy); 26 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_length'>length()</a> const; 27 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_distanceToOrigin'>distanceToOrigin</a>() const; 28 bool <a href='#SkPoint_normalize'>normalize()</a>; 29 bool <a href='#SkPoint_setNormalize'>setNormalize</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y); 30 bool <a href='#SkPoint_setLength'>setLength</a>(<a href='undocumented#SkScalar'>SkScalar</a> length); 31 bool <a href='#SkPoint_setLength'>setLength</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> length); 32 void <a href='#SkPoint_scale'>scale</a>(<a href='undocumented#SkScalar'>SkScalar</a> scale, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>* dst) const; 33 void <a href='#SkPoint_scale'>scale</a>(<a href='undocumented#SkScalar'>SkScalar</a> value); 34 void <a href='#SkPoint_negate'>negate()</a>; 35 <a href='SkPoint_Reference#SkPoint'>SkPoint</a> operator-() const; 36 void <a href='#SkPoint_addto_operator'>operator+=</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v); 37 void <a href='#SkPoint_subtractfrom_operator'>operator-=</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v); 38 <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPoint_multiply_operator'>operator*</a>(<a href='undocumented#SkScalar'>SkScalar</a> scale) const; 39 <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='#SkPoint_multiplyby_operator'>operator*=</a>(<a href='undocumented#SkScalar'>SkScalar</a> scale); 40 bool <a href='#SkPoint_isFinite'>isFinite</a>() const; 41 bool <a href='#SkPoint_equals'>equals</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) const; 42 friend bool <a href='#SkPoint_equal_operator'>operator==</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b); 43 friend bool <a href='#SkPoint_notequal_operator'>operator!=</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b); 44 friend <a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkPoint_subtract_operator'>operator-</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b); 45 friend <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPoint_add_operator'>operator+</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkVector'>SkVector</a>& b); 46 static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Length'>Length</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y); 47 static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Normalize'>Normalize</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a>* vec); 48 static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Distance'>Distance</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b); 49 static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_DotProduct'>DotProduct</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& a, const <a href='SkPoint_Reference#SkVector'>SkVector</a>& b); 50 static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_CrossProduct'>CrossProduct</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& a, const <a href='SkPoint_Reference#SkVector'>SkVector</a>& b); 51 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_cross'>cross</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& vec) const; 52 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_dot'>dot</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& vec) const; 53 }; 54 55 </pre> 56 57 <a href='SkPoint_Reference#SkPoint'>SkPoint</a> holds two 32-bit floating <a href='SkPoint_Reference#Point'>point</a> coordinates.<table style='border-collapse: collapse; width: 62.5em'> 58 59 <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Type</th> 60 <th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Member</th> 61 <th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr> 62 <tr style='background-color: #f0f0f0; '> 63 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SkScalar</td> 64 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPoint_fX'><code>fX</code></a></td> 65 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '> 66 x-axis value used by both <a href='SkPoint_Reference#Point'>Point</a> and <a href='SkPoint_Reference#Vector'>Vector</a>. May contain any value, including 67 infinities and NaN. 68 </td> 69 </tr> 70 <tr> 71 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>SkScalar</td> 72 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkPoint_fY'><code>fY</code></a></td> 73 <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '> 74 y-axis value used by both <a href='SkPoint_Reference#Point'>Point</a> and <a href='SkPoint_Reference#Vector'>Vector</a>. May contain any value, including 75 infinities and NaN. 76 </td> 77 </tr> 78 </table> 79 80 <a name='SkPoint_Make'></a> 81 82 --- 83 84 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 85 static constexpr <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPoint_Make'>Make</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) 86 </pre> 87 88 Sets <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_Make_x'>x</a>, <a href='#SkPoint_fY'>fY</a> to <a href='#SkPoint_Make_y'>y</a>. Used both to set <a href='SkPoint_Reference#SkPoint'>SkPoint</a> and <a href='SkPoint_Reference#Vector'>vector</a>. 89 90 ### Parameters 91 92 <table> <tr> <td><a name='SkPoint_Make_x'><code><strong>x</strong></code></a></td> 93 <td><a href='undocumented#SkScalar'>SkScalar</a> x-axis value of constructed <a href='SkPoint_Reference#SkPoint'>SkPoint</a> or <a href='SkPoint_Reference#Vector'>vector</a></td> 94 </tr> 95 <tr> <td><a name='SkPoint_Make_y'><code><strong>y</strong></code></a></td> 96 <td><a href='undocumented#SkScalar'>SkScalar</a> y-axis value of constructed <a href='SkPoint_Reference#SkPoint'>SkPoint</a> or <a href='SkPoint_Reference#Vector'>vector</a></td> 97 </tr> 98 </table> 99 100 ### Return Value 101 102 <a href='SkPoint_Reference#SkPoint'>SkPoint</a> (<a href='#SkPoint_Make_x'>x</a>, <a href='#SkPoint_Make_y'>y</a>) 103 104 ### Example 105 106 <div><fiddle-embed name="d266e70977847001f7c42f8a2513bee7"> 107 108 #### Example Output 109 110 ~~~~ 111 all equal 112 ~~~~ 113 114 </fiddle-embed></div> 115 116 ### See Also 117 118 <a href='#SkPoint_set'>set()</a> <a href='#SkPoint_iset'>iset()</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>::<a href='#SkIPoint_Make'>Make</a> 119 120 <a name='Property'></a> 121 122 <a name='SkPoint_x'></a> 123 124 --- 125 126 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 127 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_x'>x()</a>const 128 </pre> 129 130 Returns x-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> or <a href='SkPoint_Reference#Vector'>vector</a>. 131 132 ### Return Value 133 134 <a href='#SkPoint_fX'>fX</a> 135 136 ### Example 137 138 <div><fiddle-embed name="9f3fe446b800ae1d940785d438634941"> 139 140 #### Example Output 141 142 ~~~~ 143 pt1.fX == pt1.x() 144 ~~~~ 145 146 </fiddle-embed></div> 147 148 ### See Also 149 150 <a href='#SkPoint_y'>y()</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>::<a href='#SkIPoint_x'>x()</a> 151 152 <a name='SkPoint_y'></a> 153 154 --- 155 156 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 157 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_y'>y()</a>const 158 </pre> 159 160 Returns y-axis value of <a href='SkPoint_Reference#SkPoint'>SkPoint</a> or <a href='SkPoint_Reference#Vector'>vector</a>. 161 162 ### Return Value 163 164 <a href='#SkPoint_fY'>fY</a> 165 166 ### Example 167 168 <div><fiddle-embed name="4c962850c2dbea4d2325df469400680e"> 169 170 #### Example Output 171 172 ~~~~ 173 pt1.fY == pt1.y() 174 ~~~~ 175 176 </fiddle-embed></div> 177 178 ### See Also 179 180 <a href='#SkPoint_x'>x()</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>::<a href='#SkIPoint_y'>y()</a> 181 182 <a name='SkPoint_isZero'></a> 183 184 --- 185 186 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 187 bool <a href='#SkPoint_isZero'>isZero</a>()const 188 </pre> 189 190 Returns true if <a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_fY'>fY</a> are both zero. 191 192 ### Return Value 193 194 true if <a href='#SkPoint_fX'>fX</a> is zero and <a href='#SkPoint_fY'>fY</a> is zero 195 196 ### Example 197 198 <div><fiddle-embed name="81b9665110b88ef6bcbc20464aed7da1"> 199 200 #### Example Output 201 202 ~~~~ 203 pt.fX=+0 pt.fY=-0 204 pt.isZero() == true 205 ~~~~ 206 207 </fiddle-embed></div> 208 209 ### See Also 210 211 <a href='#SkPoint_isFinite'>isFinite</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>::<a href='#SkIPoint_isZero'>isZero</a> 212 213 <a name='Set'></a> 214 215 <a name='SkPoint_set'></a> 216 217 --- 218 219 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 220 void set(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) 221 </pre> 222 223 Sets <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_set_x'>x</a> and <a href='#SkPoint_fY'>fY</a> to <a href='#SkPoint_set_y'>y</a>. 224 225 ### Parameters 226 227 <table> <tr> <td><a name='SkPoint_set_x'><code><strong>x</strong></code></a></td> 228 <td>new value for <a href='#SkPoint_fX'>fX</a></td> 229 </tr> 230 <tr> <td><a name='SkPoint_set_y'><code><strong>y</strong></code></a></td> 231 <td>new value for <a href='#SkPoint_fY'>fY</a></td> 232 </tr> 233 </table> 234 235 ### Example 236 237 <div><fiddle-embed name="d08d1e7dafcad4342d1619fdbb2f5781"> 238 239 #### Example Output 240 241 ~~~~ 242 pt1 == pt2 243 ~~~~ 244 245 </fiddle-embed></div> 246 247 ### See Also 248 249 <a href='#SkPoint_iset'>iset()</a> <a href='#SkPoint_Make'>Make</a> 250 251 <a name='SkPoint_iset'></a> 252 253 --- 254 255 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 256 void <a href='#SkPoint_iset'>iset</a>(int32_t x, int32_t y) 257 </pre> 258 259 Sets <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_iset_x'>x</a> and <a href='#SkPoint_fY'>fY</a> to <a href='#SkPoint_iset_y'>y</a>, promoting integers to <a href='undocumented#SkScalar'>SkScalar</a> values. 260 261 Assigning a large integer value directly to <a href='#SkPoint_fX'>fX</a> or <a href='#SkPoint_fY'>fY</a> may cause a compiler 262 error, triggered by narrowing conversion of int to <a href='undocumented#SkScalar'>SkScalar</a>. This safely 263 casts <a href='#SkPoint_iset_x'>x</a> and <a href='#SkPoint_iset_y'>y</a> to avoid the error. 264 265 ### Parameters 266 267 <table> <tr> <td><a name='SkPoint_iset_x'><code><strong>x</strong></code></a></td> 268 <td>new value for <a href='#SkPoint_fX'>fX</a></td> 269 </tr> 270 <tr> <td><a name='SkPoint_iset_y'><code><strong>y</strong></code></a></td> 271 <td>new value for <a href='#SkPoint_fY'>fY</a></td> 272 </tr> 273 </table> 274 275 ### Example 276 277 <div><fiddle-embed name="0d9e8ed734981b5b113f22c7bfde5357"></fiddle-embed></div> 278 279 ### See Also 280 281 <a href='#SkPoint_set'>set</a> <a href='#SkPoint_Make'>Make</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>::<a href='#SkIPoint_set'>set</a> 282 283 <a name='SkPoint_iset_2'></a> 284 285 --- 286 287 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 288 void <a href='#SkPoint_iset'>iset</a>(const <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>& p) 289 </pre> 290 291 Sets <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkIPoint_fX'>fX</a> and <a href='#SkPoint_fY'>fY</a> to <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkIPoint_fY'>fY</a>, promoting integers to <a href='undocumented#SkScalar'>SkScalar</a> values. 292 293 Assigning an <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> containing a large integer value directly to <a href='#SkPoint_fX'>fX</a> or <a href='#SkPoint_fY'>fY</a> may 294 cause a compiler error, triggered by narrowing conversion of int to <a href='undocumented#SkScalar'>SkScalar</a>. 295 This safely casts <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkIPoint_fX'>fX</a> and <a href='#SkPoint_iset_2_p'>p</a>.<a href='#SkIPoint_fY'>fY</a> to avoid the error. 296 297 ### Parameters 298 299 <table> <tr> <td><a name='SkPoint_iset_2_p'><code><strong>p</strong></code></a></td> 300 <td><a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a> members promoted to <a href='undocumented#SkScalar'>SkScalar</a></td> 301 </tr> 302 </table> 303 304 ### Example 305 306 <div><fiddle-embed name="12b7164a769e232bb772f19c59600ee7"> 307 308 #### Example Output 309 310 ~~~~ 311 iPt: -2147483647, 2147483647 312 fPt: -2.14748e+09, 2.14748e+09 313 ~~~~ 314 315 </fiddle-embed></div> 316 317 ### See Also 318 319 <a href='#SkPoint_set'>set</a> <a href='#SkPoint_Make'>Make</a> <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>::<a href='#SkIPoint_set'>set</a> 320 321 <a name='SkPoint_setAbs'></a> 322 323 --- 324 325 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 326 void <a href='#SkPoint_setAbs'>setAbs</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& pt) 327 </pre> 328 329 Sets <a href='#SkPoint_fX'>fX</a> to absolute value of <a href='#SkPoint_setAbs_pt'>pt</a>.<a href='#SkPoint_fX'>fX</a>; and <a href='#SkPoint_fY'>fY</a> to absolute value of <a href='#SkPoint_setAbs_pt'>pt</a>.<a href='#SkPoint_fY'>fY</a>. 330 331 ### Parameters 332 333 <table> <tr> <td><a name='SkPoint_setAbs_pt'><code><strong>pt</strong></code></a></td> 334 <td>members providing magnitude for <a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_fY'>fY</a></td> 335 </tr> 336 </table> 337 338 ### Example 339 340 <div><fiddle-embed name="7f70860e820b67a347cff03c00488426"> 341 342 #### Example Output 343 344 ~~~~ 345 pt: 0, -0 abs: 0, 0 346 pt: -1, -2 abs: 1, 2 347 pt: inf, -inf abs: inf, inf 348 pt: nan, -nan abs: nan, nan 349 ~~~~ 350 351 </fiddle-embed></div> 352 353 ### See Also 354 355 <a href='#SkPoint_set'>set</a> <a href='#SkPoint_Make'>Make</a> <a href='#SkPoint_negate'>negate</a> 356 357 <a name='Offset'></a> 358 359 <a name='SkPoint_Offset'></a> 360 361 --- 362 363 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 364 static void <a href='#SkPoint_Offset'>Offset</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#Point'>points</a>[], int count, const <a href='SkPoint_Reference#SkVector'>SkVector</a>& offset) 365 </pre> 366 367 Adds <a href='#SkPoint_Offset_offset'>offset</a> to each <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkPoint_Offset_points'>points</a> array with <a href='#SkPoint_Offset_count'>count</a> entries. 368 369 ### Parameters 370 371 <table> <tr> <td><a name='SkPoint_Offset_points'><code><strong>points</strong></code></a></td> 372 <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td> 373 </tr> 374 <tr> <td><a name='SkPoint_Offset_count'><code><strong>count</strong></code></a></td> 375 <td>entries in array</td> 376 </tr> 377 <tr> <td><a name='SkPoint_Offset_offset'><code><strong>offset</strong></code></a></td> 378 <td><a href='SkPoint_Reference#Vector'>vector</a> added to <a href='#SkPoint_Offset_points'>points</a></td> 379 </tr> 380 </table> 381 382 ### Example 383 384 <div><fiddle-embed name="f0f24726df78a5d797bcf311e694a0a3"></fiddle-embed></div> 385 386 ### See Also 387 388 <a href='#SkPoint_Offset_offset'>offset</a> <a href='#SkPoint_addto_operator'>operator+=</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v) 389 390 <a name='SkPoint_Offset_2'></a> 391 392 --- 393 394 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 395 static void <a href='#SkPoint_Offset'>Offset</a>(<a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#Point'>points</a>[], int count, <a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) 396 </pre> 397 398 Adds offset (<a href='#SkPoint_Offset_2_dx'>dx</a>, <a href='#SkPoint_Offset_2_dy'>dy</a>) to each <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in <a href='#SkPoint_Offset_2_points'>points</a> array of length <a href='#SkPoint_Offset_2_count'>count</a>. 399 400 ### Parameters 401 402 <table> <tr> <td><a name='SkPoint_Offset_2_points'><code><strong>points</strong></code></a></td> 403 <td><a href='SkPath_Reference#Point_Array'>SkPoint array</a></td> 404 </tr> 405 <tr> <td><a name='SkPoint_Offset_2_count'><code><strong>count</strong></code></a></td> 406 <td>entries in array</td> 407 </tr> 408 <tr> <td><a name='SkPoint_Offset_2_dx'><code><strong>dx</strong></code></a></td> 409 <td>added to <a href='#SkPoint_fX'>fX</a> in <a href='#SkPoint_Offset_2_points'>points</a></td> 410 </tr> 411 <tr> <td><a name='SkPoint_Offset_2_dy'><code><strong>dy</strong></code></a></td> 412 <td>added to <a href='#SkPoint_fY'>fY</a> in <a href='#SkPoint_Offset_2_points'>points</a></td> 413 </tr> 414 </table> 415 416 ### Example 417 418 <div><fiddle-embed name="532849faa838de885b86d3ebffae3712"></fiddle-embed></div> 419 420 ### See Also 421 422 <a href='#SkPoint_offset'>offset</a> <a href='#SkPoint_addto_operator'>operator+=</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v) 423 424 <a name='SkPoint_offset'></a> 425 426 --- 427 428 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 429 void offset(<a href='undocumented#SkScalar'>SkScalar</a> dx, <a href='undocumented#SkScalar'>SkScalar</a> dy) 430 </pre> 431 432 Adds offset (<a href='#SkPoint_offset_dx'>dx</a>, <a href='#SkPoint_offset_dy'>dy</a>) to <a href='SkPoint_Reference#SkPoint'>SkPoint</a>. 433 434 ### Parameters 435 436 <table> <tr> <td><a name='SkPoint_offset_dx'><code><strong>dx</strong></code></a></td> 437 <td>added to <a href='#SkPoint_fX'>fX</a></td> 438 </tr> 439 <tr> <td><a name='SkPoint_offset_dy'><code><strong>dy</strong></code></a></td> 440 <td>added to <a href='#SkPoint_fY'>fY</a></td> 441 </tr> 442 </table> 443 444 ### Example 445 446 <div><fiddle-embed name="02750ceaa874f956e6e6544ef6b858ee"></fiddle-embed></div> 447 448 ### See Also 449 450 <a href='#SkPoint_Offset'>Offset</a> <a href='#SkPoint_addto_operator'>operator+=</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v) 451 452 <a name='SkPoint_length'></a> 453 454 --- 455 456 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 457 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_length'>length()</a>const 458 </pre> 459 460 Returns the Euclidean distance from origin, computed as: 461 462 <a href='undocumented#sqrt()'>sqrt</a>(<a href='#SkPoint_fX'>fX</a> * <a href='#SkPoint_fX'>fX</a> + <a href='#SkPoint_fY'>fY</a> * <a href='#SkPoint_fY'>fY</a>) 463 464 . 465 466 ### Return Value 467 468 straight-line distance to origin 469 470 ### Example 471 472 <div><fiddle-embed name="8363ab179447ee4b827679e20d3d81eb"></fiddle-embed></div> 473 474 ### See Also 475 476 <a href='#SkPoint_distanceToOrigin'>distanceToOrigin</a> <a href='#SkPoint_Length'>Length</a> <a href='#SkPoint_setLength'>setLength</a> <a href='#SkPoint_Distance'>Distance</a> 477 478 <a name='SkPoint_distanceToOrigin'></a> 479 480 --- 481 482 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 483 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_distanceToOrigin'>distanceToOrigin</a>()const 484 </pre> 485 486 Returns the Euclidean distance from origin, computed as: 487 488 <a href='undocumented#sqrt()'>sqrt</a>(<a href='#SkPoint_fX'>fX</a> * <a href='#SkPoint_fX'>fX</a> + <a href='#SkPoint_fY'>fY</a> * <a href='#SkPoint_fY'>fY</a>) 489 490 . 491 492 ### Return Value 493 494 straight-line distance to origin 495 496 ### Example 497 498 <div><fiddle-embed name="812cf26d91b1cdcd2c6b9438a8172518"></fiddle-embed></div> 499 500 ### See Also 501 502 <a href='#SkPoint_length'>length</a> <a href='#SkPoint_Length'>Length</a> <a href='#SkPoint_setLength'>setLength</a> <a href='#SkPoint_Distance'>Distance</a> 503 504 <a name='SkPoint_normalize'></a> 505 506 --- 507 508 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 509 bool <a href='#SkPoint_normalize'>normalize()</a> 510 </pre> 511 512 Scales (<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_fY'>fY</a>) so that <a href='#SkPoint_length'>length()</a> returns one, while preserving ratio of <a href='#SkPoint_fX'>fX</a> to <a href='#SkPoint_fY'>fY</a>, 513 if possible. If prior length is nearly zero, sets <a href='SkPoint_Reference#Vector'>vector</a> to (0, 0) and returns 514 false; otherwise returns true. 515 516 ### Return Value 517 518 true if former length is not zero or nearly zero 519 520 ### Example 521 522 <div><fiddle-embed name="d84fce292d86c7d9ef37ae2d179c03c7"></fiddle-embed></div> 523 524 ### See Also 525 526 <a href='#SkPoint_Normalize'>Normalize</a> <a href='#SkPoint_setLength'>setLength</a> <a href='#SkPoint_length'>length</a> <a href='#SkPoint_Length'>Length</a> 527 528 <a name='SkPoint_setNormalize'></a> 529 530 --- 531 532 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 533 bool <a href='#SkPoint_setNormalize'>setNormalize</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) 534 </pre> 535 536 Sets <a href='SkPoint_Reference#Vector'>vector</a> to (<a href='#SkPoint_setNormalize_x'>x</a>, <a href='#SkPoint_setNormalize_y'>y</a>) scaled so <a href='#SkPoint_length'>length()</a> returns one, and so that 537 (<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_fY'>fY</a>) is proportional to (<a href='#SkPoint_setNormalize_x'>x</a>, <a href='#SkPoint_setNormalize_y'>y</a>). If (<a href='#SkPoint_setNormalize_x'>x</a>, <a href='#SkPoint_setNormalize_y'>y</a>) length is nearly zero, 538 sets <a href='SkPoint_Reference#Vector'>vector</a> to (0, 0) and returns false; otherwise returns true. 539 540 ### Parameters 541 542 <table> <tr> <td><a name='SkPoint_setNormalize_x'><code><strong>x</strong></code></a></td> 543 <td>proportional value for <a href='#SkPoint_fX'>fX</a></td> 544 </tr> 545 <tr> <td><a name='SkPoint_setNormalize_y'><code><strong>y</strong></code></a></td> 546 <td>proportional value for <a href='#SkPoint_fY'>fY</a></td> 547 </tr> 548 </table> 549 550 ### Return Value 551 552 true if (<a href='#SkPoint_setNormalize_x'>x</a>, <a href='#SkPoint_setNormalize_y'>y</a>) length is not zero or nearly zero 553 554 ### Example 555 556 <div><fiddle-embed name="3e4f147d143a388802484bf0d26534c2"></fiddle-embed></div> 557 558 ### See Also 559 560 <a href='#SkPoint_normalize'>normalize</a> <a href='#SkPoint_setLength'>setLength</a> 561 562 <a name='SkPoint_setLength'></a> 563 564 --- 565 566 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 567 bool <a href='#SkPoint_setLength'>setLength</a>(<a href='undocumented#SkScalar'>SkScalar</a> length) 568 </pre> 569 570 Scales <a href='SkPoint_Reference#Vector'>vector</a> so that <a href='#SkPoint_distanceToOrigin'>distanceToOrigin</a>() returns <a href='#SkPoint_setLength_length'>length</a>, if possible. If former 571 <a href='#SkPoint_setLength_length'>length</a> is nearly zero, sets <a href='SkPoint_Reference#Vector'>vector</a> to (0, 0) and return false; otherwise returns 572 true. 573 574 ### Parameters 575 576 <table> <tr> <td><a name='SkPoint_setLength_length'><code><strong>length</strong></code></a></td> 577 <td>straight-line distance to origin</td> 578 </tr> 579 </table> 580 581 ### Return Value 582 583 true if former <a href='#SkPoint_setLength_length'>length</a> is not zero or nearly zero 584 585 ### Example 586 587 <div><fiddle-embed name="cbe7db206ece825aa3b9b7c3256aeaf0"></fiddle-embed></div> 588 589 ### See Also 590 591 <a href='#SkPoint_setLength_length'>length</a> <a href='#SkPoint_Length'>Length</a> <a href='#SkPoint_setNormalize'>setNormalize</a> <a href='#SkPoint_setAbs'>setAbs</a> 592 593 <a name='SkPoint_setLength_2'></a> 594 595 --- 596 597 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 598 bool <a href='#SkPoint_setLength'>setLength</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y, <a href='undocumented#SkScalar'>SkScalar</a> length) 599 </pre> 600 601 Sets <a href='SkPoint_Reference#Vector'>vector</a> to (<a href='#SkPoint_setLength_2_x'>x</a>, <a href='#SkPoint_setLength_2_y'>y</a>) scaled to <a href='#SkPoint_setLength_2_length'>length</a>, if possible. If former 602 <a href='#SkPoint_setLength_2_length'>length</a> is nearly zero, sets <a href='SkPoint_Reference#Vector'>vector</a> to (0, 0) and return false; otherwise returns 603 true. 604 605 ### Parameters 606 607 <table> <tr> <td><a name='SkPoint_setLength_2_x'><code><strong>x</strong></code></a></td> 608 <td>proportional value for <a href='#SkPoint_fX'>fX</a></td> 609 </tr> 610 <tr> <td><a name='SkPoint_setLength_2_y'><code><strong>y</strong></code></a></td> 611 <td>proportional value for <a href='#SkPoint_fY'>fY</a></td> 612 </tr> 613 <tr> <td><a name='SkPoint_setLength_2_length'><code><strong>length</strong></code></a></td> 614 <td>straight-line distance to origin</td> 615 </tr> 616 </table> 617 618 ### Return Value 619 620 true if (<a href='#SkPoint_setLength_2_x'>x</a>, <a href='#SkPoint_setLength_2_y'>y</a>) <a href='#SkPoint_setLength_2_length'>length</a> is not zero or nearly zero 621 622 ### Example 623 624 <div><fiddle-embed name="3cc0662b6fbbee1fe3442a0acfece22c"></fiddle-embed></div> 625 626 ### See Also 627 628 <a href='#SkPoint_setLength_2_length'>length</a> <a href='#SkPoint_Length'>Length</a> <a href='#SkPoint_setNormalize'>setNormalize</a> <a href='#SkPoint_setAbs'>setAbs</a> 629 630 <a name='SkPoint_scale'></a> 631 632 --- 633 634 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 635 void scale(<a href='undocumented#SkScalar'>SkScalar</a> scale, <a href='SkPoint_Reference#SkPoint'>SkPoint</a>* dst)const 636 </pre> 637 638 Sets <a href='#SkPoint_scale_dst'>dst</a> to <a href='SkPoint_Reference#SkPoint'>SkPoint</a> times <a href='#SkPoint_scale_scale'>scale</a>. <a href='#SkPoint_scale_dst'>dst</a> may be <a href='SkPoint_Reference#SkPoint'>SkPoint</a> to modify <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in place. 639 640 ### Parameters 641 642 <table> <tr> <td><a name='SkPoint_scale_scale'><code><strong>scale</strong></code></a></td> 643 <td>factor to multiply <a href='SkPoint_Reference#SkPoint'>SkPoint</a> by</td> 644 </tr> 645 <tr> <td><a name='SkPoint_scale_dst'><code><strong>dst</strong></code></a></td> 646 <td>storage for scaled <a href='SkPoint_Reference#SkPoint'>SkPoint</a></td> 647 </tr> 648 </table> 649 650 ### Example 651 652 <div><fiddle-embed name="972e4e230806281adb928e068bcd8551"></fiddle-embed></div> 653 654 ### See Also 655 656 <a href='#SkPoint_multiply_operator'>operator*</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_scale_scale'>scale</a>) const <a href='#SkPoint_multiplyby_operator'>operator*=</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_scale_scale'>scale</a>) <a href='#SkPoint_setLength'>setLength</a> 657 658 <a name='SkPoint_scale_2'></a> 659 660 --- 661 662 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 663 void scale(<a href='undocumented#SkScalar'>SkScalar</a> value) 664 </pre> 665 666 Scales <a href='SkPoint_Reference#SkPoint'>SkPoint</a> in place by scale. 667 668 ### Parameters 669 670 <table> <tr> <td><a name='SkPoint_scale_2_value'><code><strong>value</strong></code></a></td> 671 <td>factor to multiply <a href='SkPoint_Reference#SkPoint'>SkPoint</a> by</td> 672 </tr> 673 </table> 674 675 ### Example 676 677 <div><fiddle-embed name="1060a4f27d8ef29519e6ac006ce90f2b"></fiddle-embed></div> 678 679 ### See Also 680 681 <a href='#SkPoint_multiply_operator'>operator*</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_scale'>scale</a>) const <a href='#SkPoint_multiplyby_operator'>operator*=</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_scale'>scale</a>) <a href='#SkPoint_setLength'>setLength</a> 682 683 <a name='SkPoint_negate'></a> 684 685 --- 686 687 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 688 void <a href='#SkPoint_negate'>negate()</a> 689 </pre> 690 691 Changes the sign of <a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_fY'>fY</a>. 692 693 ### Example 694 695 <div><fiddle-embed name="312c0c8065ab5d0adfda80cccf2d11e6"> 696 697 #### Example Output 698 699 ~~~~ 700 pt: 0, -0 negate: -0, 0 701 pt: -1, -2 negate: 1, 2 702 pt: inf, -inf negate: -inf, inf 703 pt: nan, -nan negate: -nan, nan 704 ~~~~ 705 706 </fiddle-embed></div> 707 708 ### See Also 709 710 operator-() const <a href='#SkPoint_setAbs'>setAbs</a> 711 712 <a name='SkPoint_minus_operator'></a> 713 714 --- 715 716 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 717 <a href='SkPoint_Reference#SkPoint'>SkPoint</a> operator-()const 718 </pre> 719 720 Returns <a href='SkPoint_Reference#SkPoint'>SkPoint</a> changing the signs of <a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_fY'>fY</a>. 721 722 ### Return Value 723 724 <a href='SkPoint_Reference#SkPoint'>SkPoint</a> as (-<a href='#SkPoint_fX'>fX</a>, -<a href='#SkPoint_fY'>fY</a>) 725 726 ### Example 727 728 <div><fiddle-embed name="9baf247cfcd8272c0ddf6ce93f676b37"> 729 730 #### Example Output 731 732 ~~~~ 733 pt: 0, -0 negate: -0, 0 734 pt: -1, -2 negate: 1, 2 735 pt: inf, -inf negate: -inf, inf 736 pt: nan, -nan negate: -nan, nan 737 ~~~~ 738 739 </fiddle-embed></div> 740 741 ### See Also 742 743 <a href='#SkPoint_negate'>negate</a> <a href='#SkPoint_subtract_operator'>operator-</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b) <a href='#SkPoint_subtractfrom_operator'>operator-=</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v) <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>::operator-() const 744 745 <a name='SkPoint_addto_operator'></a> 746 747 --- 748 749 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 750 void <a href='#SkPoint_addto_operator'>operator+=</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v) 751 </pre> 752 753 Adds <a href='SkPoint_Reference#Vector'>Vector</a> <a href='#SkPoint_addto_operator_v'>v</a> to <a href='SkPoint_Reference#Point'>Point</a>. Sets <a href='SkPoint_Reference#Point'>Point</a> to: <code>(<a href='#SkPoint_fX'>fX</a> + <a href='#SkPoint_addto_operator_v'>v</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_fY'>fY</a> + <a href='#SkPoint_addto_operator_v'>v</a>.<a href='#SkPoint_fY'>fY</a>)</code>. 754 755 ### Parameters 756 757 <table> <tr> <td><a name='SkPoint_addto_operator_v'><code><strong>v</strong></code></a></td> 758 <td><a href='SkPoint_Reference#Vector'>Vector</a> to add</td> 759 </tr> 760 </table> 761 762 ### Example 763 764 <div><fiddle-embed name="8b4e79109e2381345258cb744881b20c"></fiddle-embed></div> 765 766 ### See Also 767 768 <a href='#SkPoint_offset'>offset()</a> <a href='#SkPoint_add_operator'>operator+</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkVector'>SkVector</a>& b) <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>::operator+=(const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& <a href='#SkPoint_addto_operator_v'>v</a>) 769 770 <a name='SkPoint_subtractfrom_operator'></a> 771 772 --- 773 774 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 775 void <a href='#SkPoint_subtractfrom_operator'>operator-=</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v) 776 </pre> 777 778 Subtracts <a href='SkPoint_Reference#Vector'>Vector</a> <a href='#SkPoint_subtractfrom_operator_v'>v</a> from <a href='SkPoint_Reference#Point'>Point</a>. Sets <a href='SkPoint_Reference#Point'>Point</a> to: <code>(<a href='#SkPoint_fX'>fX</a> - <a href='#SkPoint_subtractfrom_operator_v'>v</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_fY'>fY</a> - <a href='#SkPoint_subtractfrom_operator_v'>v</a>.<a href='#SkPoint_fY'>fY</a>)</code>. 779 780 ### Parameters 781 782 <table> <tr> <td><a name='SkPoint_subtractfrom_operator_v'><code><strong>v</strong></code></a></td> 783 <td><a href='SkPoint_Reference#Vector'>Vector</a> to subtract</td> 784 </tr> 785 </table> 786 787 ### Example 788 789 <div><fiddle-embed name="86c0399704d8dff4091bf87b8d87d40b"></fiddle-embed></div> 790 791 ### See Also 792 793 <a href='#SkPoint_offset'>offset()</a> <a href='#SkPoint_subtract_operator'>operator-</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b) <a href='SkIPoint_Reference#SkIPoint'>SkIPoint</a>::operator-=(const <a href='SkIPoint_Reference#SkIVector'>SkIVector</a>& <a href='#SkPoint_subtractfrom_operator_v'>v</a>) 794 795 <a name='SkPoint_multiply_operator'></a> 796 797 --- 798 799 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 800 <a href='SkPoint_Reference#SkPoint'>SkPoint</a> operator*(<a href='undocumented#SkScalar'>SkScalar</a> scale)const 801 </pre> 802 803 Returns <a href='SkPoint_Reference#SkPoint'>SkPoint</a> multiplied by <a href='#SkPoint_multiply_operator_scale'>scale</a>. 804 805 ### Parameters 806 807 <table> <tr> <td><a name='SkPoint_multiply_operator_scale'><code><strong>scale</strong></code></a></td> 808 <td><a href='undocumented#Scalar'>scalar</a> to multiply by</td> 809 </tr> 810 </table> 811 812 ### Return Value 813 814 <a href='SkPoint_Reference#SkPoint'>SkPoint</a> as (<a href='#SkPoint_fX'>fX</a> * <a href='#SkPoint_multiply_operator_scale'>scale</a>, <a href='#SkPoint_fY'>fY</a> * <a href='#SkPoint_multiply_operator_scale'>scale</a>) 815 816 ### Example 817 818 <div><fiddle-embed name="35b3bc675779de043706ae4817ee950c"></fiddle-embed></div> 819 820 ### See Also 821 822 <a href='#SkPoint_multiplyby_operator'>operator*=</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_multiply_operator_scale'>scale</a>) <a href='#SkPoint_scale'>scale()</a> <a href='#SkPoint_setLength'>setLength</a> <a href='#SkPoint_setNormalize'>setNormalize</a> 823 824 <a name='SkPoint_multiplyby_operator'></a> 825 826 --- 827 828 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 829 <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='#SkPoint_multiplyby_operator'>operator*=</a>(<a href='undocumented#SkScalar'>SkScalar</a> scale) 830 </pre> 831 832 Multiplies <a href='SkPoint_Reference#Point'>Point</a> by <a href='#SkPoint_multiplyby_operator_scale'>scale</a>. Sets <a href='SkPoint_Reference#Point'>Point</a> to: <code>(<a href='#SkPoint_fX'>fX</a> * <a href='#SkPoint_multiplyby_operator_scale'>scale</a>, <a href='#SkPoint_fY'>fY</a> * <a href='#SkPoint_multiplyby_operator_scale'>scale</a>)</code>. 833 834 ### Parameters 835 836 <table> <tr> <td><a name='SkPoint_multiplyby_operator_scale'><code><strong>scale</strong></code></a></td> 837 <td><a href='undocumented#Scalar'>Scalar</a> to multiply by</td> 838 </tr> 839 </table> 840 841 ### Return Value 842 843 reference to <a href='SkPoint_Reference#Point'>Point</a> 844 845 ### Example 846 847 <div><fiddle-embed name="3ce3db36235d80dbac4d39504cf756da"></fiddle-embed></div> 848 849 ### See Also 850 851 <a href='#SkPoint_multiply_operator'>operator*</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_multiplyby_operator_scale'>scale</a>) const <a href='#SkPoint_scale'>scale()</a> <a href='#SkPoint_setLength'>setLength</a> <a href='#SkPoint_setNormalize'>setNormalize</a> 852 853 <a name='SkPoint_isFinite'></a> 854 855 --- 856 857 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 858 bool <a href='#SkPoint_isFinite'>isFinite</a>()const 859 </pre> 860 861 Returns true if both <a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_fY'>fY</a> are measurable values. 862 863 ### Return Value 864 865 true for values other than infinities and NaN 866 867 ### Example 868 869 <div><fiddle-embed name="937cc166cc0e220f33fb82501141d0b3"> 870 871 #### Example Output 872 873 ~~~~ 874 pt: 0, -0 finite: true 875 pt: -1, -2 finite: true 876 pt: inf, 1 finite: false 877 pt: nan, -1 finite: false 878 ~~~~ 879 880 </fiddle-embed></div> 881 882 ### See Also 883 884 <a href='SkRect_Reference#SkRect'>SkRect</a>::<a href='#SkRect_isFinite'>isFinite</a> <a href='SkPath_Reference#SkPath'>SkPath</a>::<a href='#SkPath_isFinite'>isFinite</a> 885 886 <a name='SkPoint_equals'></a> 887 888 --- 889 890 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 891 bool equals(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y)const 892 </pre> 893 894 Returns true if <a href='SkPoint_Reference#SkPoint'>SkPoint</a> is equivalent to <a href='SkPoint_Reference#SkPoint'>SkPoint</a> constructed from (<a href='#SkPoint_equals_x'>x</a>, <a href='#SkPoint_equals_y'>y</a>). 895 896 ### Parameters 897 898 <table> <tr> <td><a name='SkPoint_equals_x'><code><strong>x</strong></code></a></td> 899 <td>value compared with <a href='#SkPoint_fX'>fX</a></td> 900 </tr> 901 <tr> <td><a name='SkPoint_equals_y'><code><strong>y</strong></code></a></td> 902 <td>value compared with <a href='#SkPoint_fY'>fY</a></td> 903 </tr> 904 </table> 905 906 ### Return Value 907 908 true if <a href='SkPoint_Reference#SkPoint'>SkPoint</a> equals (<a href='#SkPoint_equals_x'>x</a>, <a href='#SkPoint_equals_y'>y</a>) 909 910 ### Example 911 912 <div><fiddle-embed name="4cecb878c8b66beffda051f26c00f817"> 913 914 #### Example Output 915 916 ~~~~ 917 pt: 0, -0 == pt 918 pt: -1, -2 == pt 919 pt: inf, 1 == pt 920 pt: nan, -1 != pt 921 ~~~~ 922 923 </fiddle-embed></div> 924 925 ### See Also 926 927 <a href='#SkPoint_equal_operator'>operator==</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b) 928 929 <a name='SkPoint_equal_operator'></a> 930 931 --- 932 933 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 934 bool <a href='#SkPoint_equal_operator'>operator==</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b) 935 </pre> 936 937 Returns true if <a href='#SkPoint_equal_operator_a'>a</a> is equivalent to <a href='#SkPoint_equal_operator_b'>b</a>. 938 939 ### Parameters 940 941 <table> <tr> <td><a name='SkPoint_equal_operator_a'><code><strong>a</strong></code></a></td> 942 <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to compare</td> 943 </tr> 944 <tr> <td><a name='SkPoint_equal_operator_b'><code><strong>b</strong></code></a></td> 945 <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to compare</td> 946 </tr> 947 </table> 948 949 ### Return Value 950 951 true if <a href='#SkPoint_equal_operator_a'>a</a>.<a href='#SkPoint_fX'>fX</a> == <a href='#SkPoint_equal_operator_b'>b</a>.<a href='#SkPoint_fX'>fX</a> and <a href='#SkPoint_equal_operator_a'>a</a>.<a href='#SkPoint_fY'>fY</a> == <a href='#SkPoint_equal_operator_b'>b</a>.<a href='#SkPoint_fY'>fY</a> 952 953 ### Example 954 955 <div><fiddle-embed name="741f793334a48a35dadf4310d7ea52cb"> 956 957 #### Example Output 958 959 ~~~~ 960 pt: 0, -0 == pt 961 pt: -1, -2 == pt 962 pt: inf, 1 == pt 963 pt: nan, -1 != pt 964 ~~~~ 965 966 </fiddle-embed></div> 967 968 ### See Also 969 970 <a href='#SkPoint_equals'>equals()</a> <a href='#SkPoint_notequal_operator'>operator!=</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='#SkPoint_equal_operator_a'>a</a>, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='#SkPoint_equal_operator_b'>b</a>) 971 972 <a name='SkPoint_notequal_operator'></a> 973 974 --- 975 976 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 977 bool <a href='#SkPoint_notequal_operator'>operator!=</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b) 978 </pre> 979 980 Returns true if <a href='#SkPoint_notequal_operator_a'>a</a> is not equivalent to <a href='#SkPoint_notequal_operator_b'>b</a>. 981 982 ### Parameters 983 984 <table> <tr> <td><a name='SkPoint_notequal_operator_a'><code><strong>a</strong></code></a></td> 985 <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to compare</td> 986 </tr> 987 <tr> <td><a name='SkPoint_notequal_operator_b'><code><strong>b</strong></code></a></td> 988 <td><a href='SkPoint_Reference#SkPoint'>SkPoint</a> to compare</td> 989 </tr> 990 </table> 991 992 ### Return Value 993 994 true if <a href='#SkPoint_notequal_operator_a'>a</a>.<a href='#SkPoint_fX'>fX</a> != <a href='#SkPoint_notequal_operator_b'>b</a>.<a href='#SkPoint_fX'>fX</a> or <a href='#SkPoint_notequal_operator_a'>a</a>.<a href='#SkPoint_fY'>fY</a> != <a href='#SkPoint_notequal_operator_b'>b</a>.<a href='#SkPoint_fY'>fY</a> 995 996 ### Example 997 998 <div><fiddle-embed name="8fe8572685eaa617f25a5a6767a874dc"> 999 1000 #### Example Output 1001 1002 ~~~~ 1003 pt: 0, -0 == pt 1004 pt: -1, -2 == pt 1005 pt: inf, 1 == pt 1006 pt: nan, -1 != pt 1007 ~~~~ 1008 1009 </fiddle-embed></div> 1010 1011 ### See Also 1012 1013 <a href='#SkPoint_equal_operator'>operator==</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='#SkPoint_notequal_operator_a'>a</a>, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& <a href='#SkPoint_notequal_operator_b'>b</a>) <a href='#SkPoint_equals'>equals()</a> 1014 1015 <a name='SkPoint_subtract_operator'></a> 1016 1017 --- 1018 1019 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1020 <a href='SkPoint_Reference#SkVector'>SkVector</a> <a href='#SkPoint_subtract_operator'>operator-</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b) 1021 </pre> 1022 1023 Returns <a href='SkPoint_Reference#Vector'>Vector</a> from <a href='#SkPoint_subtract_operator_b'>b</a> to <a href='#SkPoint_subtract_operator_a'>a</a>, computed as <code>(<a href='#SkPoint_subtract_operator_a'>a</a>.<a href='#SkPoint_fX'>fX</a> - <a href='#SkPoint_subtract_operator_b'>b</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_subtract_operator_a'>a</a>.<a href='#SkPoint_fY'>fY</a> - <a href='#SkPoint_subtract_operator_b'>b</a>.<a href='#SkPoint_fY'>fY</a>)</code>. 1024 1025 Can also be used to subtract <a href='SkPoint_Reference#Vector'>Vector</a> from <a href='SkPoint_Reference#Point'>Point</a>, returning <a href='SkPoint_Reference#Point'>Point</a>. 1026 Can also be used to subtract <a href='SkPoint_Reference#Vector'>Vector</a> from <a href='SkPoint_Reference#Vector'>Vector</a>, returning <a href='SkPoint_Reference#Vector'>Vector</a>. 1027 1028 ### Parameters 1029 1030 <table> <tr> <td><a name='SkPoint_subtract_operator_a'><code><strong>a</strong></code></a></td> 1031 <td><a href='SkPoint_Reference#Point'>Point</a> to subtract from</td> 1032 </tr> 1033 <tr> <td><a name='SkPoint_subtract_operator_b'><code><strong>b</strong></code></a></td> 1034 <td><a href='SkPoint_Reference#Point'>Point</a> to subtract</td> 1035 </tr> 1036 </table> 1037 1038 ### Return Value 1039 1040 <a href='SkPoint_Reference#Vector'>Vector</a> from <a href='#SkPoint_subtract_operator_b'>b</a> to <a href='#SkPoint_subtract_operator_a'>a</a> 1041 1042 ### Example 1043 1044 <div><fiddle-embed name="b6c4943ecd0b2dccf9d220b8944009e0"></fiddle-embed></div> 1045 1046 ### See Also 1047 1048 <a href='#SkPoint_subtractfrom_operator'>operator-=</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v) <a href='#SkPoint_offset'>offset()</a> 1049 1050 <a name='SkPoint_add_operator'></a> 1051 1052 --- 1053 1054 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1055 <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='#SkPoint_add_operator'>operator+</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkVector'>SkVector</a>& b) 1056 </pre> 1057 1058 Returns <a href='SkPoint_Reference#Point'>Point</a> resulting from <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPoint_add_operator_a'>a</a> offset by <a href='SkPoint_Reference#Vector'>Vector</a> <a href='#SkPoint_add_operator_b'>b</a>, computed as: 1059 <code>(<a href='#SkPoint_add_operator_a'>a</a>.<a href='#SkPoint_fX'>fX</a> + <a href='#SkPoint_add_operator_b'>b</a>.<a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_add_operator_a'>a</a>.<a href='#SkPoint_fY'>fY</a> + <a href='#SkPoint_add_operator_b'>b</a>.<a href='#SkPoint_fY'>fY</a>)</code>. 1060 1061 Can also be used to offset <a href='SkPoint_Reference#Point'>Point</a> <a href='#SkPoint_add_operator_b'>b</a> by <a href='SkPoint_Reference#Vector'>Vector</a> <a href='#SkPoint_add_operator_a'>a</a>, returning <a href='SkPoint_Reference#Point'>Point</a>. 1062 Can also be used to add <a href='SkPoint_Reference#Vector'>Vector</a> to <a href='SkPoint_Reference#Vector'>Vector</a>, returning <a href='SkPoint_Reference#Vector'>Vector</a>. 1063 1064 ### Parameters 1065 1066 <table> <tr> <td><a name='SkPoint_add_operator_a'><code><strong>a</strong></code></a></td> 1067 <td><a href='SkPoint_Reference#Point'>Point</a> or <a href='SkPoint_Reference#Vector'>Vector</a> to add to</td> 1068 </tr> 1069 <tr> <td><a name='SkPoint_add_operator_b'><code><strong>b</strong></code></a></td> 1070 <td><a href='SkPoint_Reference#Point'>Point</a> or <a href='SkPoint_Reference#Vector'>Vector</a> to add</td> 1071 </tr> 1072 </table> 1073 1074 ### Return Value 1075 1076 <a href='SkPoint_Reference#Point'>Point</a> equal to <a href='#SkPoint_add_operator_a'>a</a> offset by <a href='#SkPoint_add_operator_b'>b</a> 1077 1078 ### Example 1079 1080 <div><fiddle-embed name="911a84253dfec4dabf94dbe3c71766f0"></fiddle-embed></div> 1081 1082 ### See Also 1083 1084 <a href='#SkPoint_addto_operator'>operator+=</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& v) <a href='#SkPoint_offset'>offset()</a> 1085 1086 <a name='SkPoint_Length'></a> 1087 1088 --- 1089 1090 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1091 static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Length'>Length</a>(<a href='undocumented#SkScalar'>SkScalar</a> x, <a href='undocumented#SkScalar'>SkScalar</a> y) 1092 </pre> 1093 1094 Returns the <a href='undocumented#Euclidean_Distance'>Euclidean distance</a> from origin, computed as: 1095 1096 <a href='undocumented#sqrt()'>sqrt</a>(<a href='#SkPoint_Length_x'>x</a> * <a href='#SkPoint_Length_x'>x</a> + <a href='#SkPoint_Length_y'>y</a> * <a href='#SkPoint_Length_y'>y</a>) 1097 1098 . 1099 1100 ### Parameters 1101 1102 <table> <tr> <td><a name='SkPoint_Length_x'><code><strong>x</strong></code></a></td> 1103 <td>component of length</td> 1104 </tr> 1105 <tr> <td><a name='SkPoint_Length_y'><code><strong>y</strong></code></a></td> 1106 <td>component of length</td> 1107 </tr> 1108 </table> 1109 1110 ### Return Value 1111 1112 straight-line distance to origin 1113 1114 ### Example 1115 1116 <div><fiddle-embed name="c98773d8b4509969d78cb8121e4b77f6"></fiddle-embed></div> 1117 1118 ### See Also 1119 1120 <a href='#SkPoint_length'>length()</a> <a href='#SkPoint_Distance'>Distance</a> <a href='#SkPoint_setLength'>setLength</a> 1121 1122 <a name='SkPoint_Normalize'></a> 1123 1124 --- 1125 1126 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1127 static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Normalize'>Normalize</a>(<a href='SkPoint_Reference#SkVector'>SkVector</a>* vec) 1128 </pre> 1129 1130 Scales (<a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fX'>fX</a>, <a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fY'>fY</a>) so that <a href='#SkPoint_length'>length()</a> returns one, while preserving ratio of <a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fX'>fX</a> 1131 to <a href='#SkPoint_Normalize_vec'>vec</a>-><a href='#SkPoint_fY'>fY</a>, if possible. If original length is nearly zero, sets <a href='#SkPoint_Normalize_vec'>vec</a> to (0, 0) and returns 1132 zero; otherwise, returns length of <a href='#SkPoint_Normalize_vec'>vec</a> before <a href='#SkPoint_Normalize_vec'>vec</a> is scaled. 1133 1134 Returned prior length may be <a href='undocumented#SK_ScalarInfinity'>SK_ScalarInfinity</a> if it can not be represented by <a href='undocumented#SkScalar'>SkScalar</a>. 1135 1136 Note that <a href='#SkPoint_normalize'>normalize()</a> is faster if prior length is not required. 1137 1138 ### Parameters 1139 1140 <table> <tr> <td><a name='SkPoint_Normalize_vec'><code><strong>vec</strong></code></a></td> 1141 <td>normalized to unit length</td> 1142 </tr> 1143 </table> 1144 1145 ### Return Value 1146 1147 original <a href='#SkPoint_Normalize_vec'>vec</a> length 1148 1149 ### Example 1150 1151 <div><fiddle-embed name="60a08f3ce75374fc815384616d114df7"></fiddle-embed></div> 1152 1153 ### See Also 1154 1155 <a href='#SkPoint_normalize'>normalize()</a> <a href='#SkPoint_setLength'>setLength</a> <a href='#SkPoint_Length'>Length</a> 1156 1157 <a name='SkPoint_Distance'></a> 1158 1159 --- 1160 1161 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1162 static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_Distance'>Distance</a>(const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& a, const <a href='SkPoint_Reference#SkPoint'>SkPoint</a>& b) 1163 </pre> 1164 1165 Returns the <a href='undocumented#Euclidean_Distance'>Euclidean distance</a> between <a href='#SkPoint_Distance_a'>a</a> and <a href='#SkPoint_Distance_b'>b</a>. 1166 1167 ### Parameters 1168 1169 <table> <tr> <td><a name='SkPoint_Distance_a'><code><strong>a</strong></code></a></td> 1170 <td><a href='undocumented#Line'>line</a> end <a href='SkPoint_Reference#Point'>point</a></td> 1171 </tr> 1172 <tr> <td><a name='SkPoint_Distance_b'><code><strong>b</strong></code></a></td> 1173 <td><a href='undocumented#Line'>line</a> end <a href='SkPoint_Reference#Point'>point</a></td> 1174 </tr> 1175 </table> 1176 1177 ### Return Value 1178 1179 straight-line distance from <a href='#SkPoint_Distance_a'>a</a> to <a href='#SkPoint_Distance_b'>b</a> 1180 1181 ### Example 1182 1183 <div><fiddle-embed name="9e0a2de2eb94dba4521d733e73f2bda5"></fiddle-embed></div> 1184 1185 ### See Also 1186 1187 <a href='#SkPoint_length'>length()</a> <a href='#SkPoint_setLength'>setLength</a> 1188 1189 <a name='SkPoint_DotProduct'></a> 1190 1191 --- 1192 1193 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1194 static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_DotProduct'>DotProduct</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& a, const <a href='SkPoint_Reference#SkVector'>SkVector</a>& b) 1195 </pre> 1196 1197 Returns the dot product of <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_DotProduct_a'>a</a> and <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_DotProduct_b'>b</a>. 1198 1199 ### Parameters 1200 1201 <table> <tr> <td><a name='SkPoint_DotProduct_a'><code><strong>a</strong></code></a></td> 1202 <td>left side of dot product</td> 1203 </tr> 1204 <tr> <td><a name='SkPoint_DotProduct_b'><code><strong>b</strong></code></a></td> 1205 <td>right side of dot product</td> 1206 </tr> 1207 </table> 1208 1209 ### Return Value 1210 1211 product of input magnitudes and cosine of the angle between them 1212 1213 ### Example 1214 1215 <div><fiddle-embed name="496db0131a003162faba7d7f98b30340"></fiddle-embed></div> 1216 1217 ### See Also 1218 1219 <a href='#SkPoint_dot'>dot</a> <a href='#SkPoint_CrossProduct'>CrossProduct</a> 1220 1221 <a name='SkPoint_CrossProduct'></a> 1222 1223 --- 1224 1225 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1226 static <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkPoint_CrossProduct'>CrossProduct</a>(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& a, const <a href='SkPoint_Reference#SkVector'>SkVector</a>& b) 1227 </pre> 1228 1229 Returns the cross product of <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_CrossProduct_a'>a</a> and <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_CrossProduct_b'>b</a>. 1230 1231 <a href='#SkPoint_CrossProduct_a'>a</a> and <a href='#SkPoint_CrossProduct_b'>b</a> form three-dimensional <a href='SkPoint_Reference#Vector'>vectors</a> with z-axis value equal to zero. The 1232 cross product is <a href='#SkPoint_CrossProduct_a'>a</a> three-dimensional <a href='SkPoint_Reference#Vector'>vector</a> with x-axis and y-axis values equal 1233 to zero. The cross product z-axis component is returned. 1234 1235 ### Parameters 1236 1237 <table> <tr> <td><a name='SkPoint_CrossProduct_a'><code><strong>a</strong></code></a></td> 1238 <td>left side of cross product</td> 1239 </tr> 1240 <tr> <td><a name='SkPoint_CrossProduct_b'><code><strong>b</strong></code></a></td> 1241 <td>right side of cross product</td> 1242 </tr> 1243 </table> 1244 1245 ### Return Value 1246 1247 area spanned by <a href='SkPoint_Reference#Vector'>vectors</a> signed by angle direction 1248 1249 ### Example 1250 1251 <div><fiddle-embed name="8b8a4cd8a29d22bb9c5e63b70357bd65"></fiddle-embed></div> 1252 1253 ### See Also 1254 1255 <a href='#SkPoint_cross'>cross</a> <a href='#SkPoint_DotProduct'>DotProduct</a> 1256 1257 <a name='SkPoint_cross'></a> 1258 1259 --- 1260 1261 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1262 <a href='undocumented#SkScalar'>SkScalar</a> cross(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& vec)const 1263 </pre> 1264 1265 Returns the cross product of <a href='SkPoint_Reference#Vector'>vector</a> and <a href='#SkPoint_cross_vec'>vec</a>. 1266 1267 <a href='SkPoint_Reference#Vector'>Vector</a> and <a href='#SkPoint_cross_vec'>vec</a> form three-dimensional <a href='SkPoint_Reference#Vector'>vectors</a> with z-axis value equal to zero. 1268 The cross product is a three-dimensional <a href='SkPoint_Reference#Vector'>vector</a> with x-axis and y-axis values 1269 equal to zero. The cross product z-axis component is returned. 1270 1271 ### Parameters 1272 1273 <table> <tr> <td><a name='SkPoint_cross_vec'><code><strong>vec</strong></code></a></td> 1274 <td>right side of cross product</td> 1275 </tr> 1276 </table> 1277 1278 ### Return Value 1279 1280 area spanned by <a href='SkPoint_Reference#Vector'>vectors</a> signed by angle direction 1281 1282 ### Example 1283 1284 <div><fiddle-embed name="0bc7b3997357e499817278b78bdfbf1d"></fiddle-embed></div> 1285 1286 ### See Also 1287 1288 <a href='#SkPoint_CrossProduct'>CrossProduct</a> <a href='#SkPoint_dot'>dot</a> 1289 1290 <a name='SkPoint_dot'></a> 1291 1292 --- 1293 1294 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0"> 1295 <a href='undocumented#SkScalar'>SkScalar</a> dot(const <a href='SkPoint_Reference#SkVector'>SkVector</a>& vec)const 1296 </pre> 1297 1298 Returns the dot product of <a href='SkPoint_Reference#Vector'>vector</a> and <a href='SkPoint_Reference#Vector'>vector</a> <a href='#SkPoint_dot_vec'>vec</a>. 1299 1300 ### Parameters 1301 1302 <table> <tr> <td><a name='SkPoint_dot_vec'><code><strong>vec</strong></code></a></td> 1303 <td>right side of dot product</td> 1304 </tr> 1305 </table> 1306 1307 ### Return Value 1308 1309 product of input magnitudes and cosine of the angle between them 1310 1311 ### Example 1312 1313 <div><fiddle-embed name="56d01ccfedd71d3c504b09afa2875d38"></fiddle-embed></div> 1314 1315 ### See Also 1316 1317 <a href='#SkPoint_DotProduct'>DotProduct</a> <a href='#SkPoint_cross'>cross</a> 1318 1319 <a name='Vector'></a> 1320 1321 <a name='SkVector'></a> 1322 1323 --- 1324 1325 <pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0"> 1326 typedef <a href='SkPoint_Reference#SkPoint'>SkPoint</a> <a href='SkPoint_Reference#SkVector'>SkVector</a>; 1327 </pre> 1328 1329 <a href='SkPoint_Reference#SkVector'>SkVector</a> provides an alternative name for <a href='SkPoint_Reference#SkPoint'>SkPoint</a>. <a href='SkPoint_Reference#SkVector'>SkVector</a> and <a href='SkPoint_Reference#SkPoint'>SkPoint</a> can 1330 be used interchangeably for all purposes.