Frankiezafe (Talk | contribs) (Created page with "This page contains codes of useful math methods already turned into code. == Geometry == == Segments' intersection <ref>Adapted from a stackoverflow post, by ''ubuntu'' - [...") |
Frankiezafe (Talk | contribs) (→Segments' intersection Adapted from a stackoverflow post, by ubuntu - stackoverflow.com) |
||
| Line 4: | Line 4: | ||
| − | == Segments' intersection <ref>Adapted from a stackoverflow post, by ''ubuntu'' - [http://stackoverflow.com/questions/15297590/improve-in-coding-saving-how-to-check-if-two-line-segments-are-crossing-in-pytho stackoverflow.com]</ref> == | + | === Segments' intersection <ref>Adapted from a stackoverflow post, by ''ubuntu'' - [http://stackoverflow.com/questions/15297590/improve-in-coding-saving-how-to-check-if-two-line-segments-are-crossing-in-pytho stackoverflow.com]</ref> === |
PVector intersetion( PVector a1, PVector a2, PVector b1, PVector b2 ) { | PVector intersetion( PVector a1, PVector a2, PVector b1, PVector b2 ) { | ||
This page contains codes of useful math methods already turned into code.
PVector intersetion( PVector a1, PVector a2, PVector b1, PVector b2 ) {
float a = a2.x - a1.x;
float b = b1.x - b2.x;
float c = a2.y - a1.y;
float d = b1.y - b2.y;
float e = b1.x - a1.x;
float f = b1.y - a1.y;
float denom = a * d - b * c;
if ( abs( denom ) < 1e-5 ) {
// parrallel
return null;
} else {
float t = (e*d - b*f)/denom;
return new PVector( a1.x + t * ( a2.x - a1.x ), a1.y + t * ( a2.y - a1.y ) );
}
}
Cite error: <ref> tags exist, but no <references/> tag was found
online identity ∋ [ social ∋ [mastodon♥, twitter®, facebook®, diaspora, linkedin®]
∥ repos ∋ [github®, gitlab♥, bitbucket®, sourceforge] ∥ media ∋ [itch.io®, vimeo®, peertube♥, twitch.tv®, tumblr®] ∥ communities ∋ [godotengine♥, openprocessing, stackoverflow, threejs]]