summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Runge <dave@sleepmap.de>2016-01-04 13:40:12 +0100
committerDavid Runge <dave@sleepmap.de>2016-01-04 13:40:12 +0100
commit8b4f7ef465921ce620df31b005c870b4deb3103a (patch)
tree9632ad6bd5f3ebda1d309af70b9f6a649baba4b9
parentf527b87d09d686f8e7cb355aaa5da0fa17136c67 (diff)
downloadprocessing-sketchbook-8b4f7ef465921ce620df31b005c870b4deb3103a.tar.gz
processing-sketchbook-8b4f7ef465921ce620df31b005c870b4deb3103a.tar.bz2
processing-sketchbook-8b4f7ef465921ce620df31b005c870b4deb3103a.tar.xz
processing-sketchbook-8b4f7ef465921ce620df31b005c870b4deb3103a.zip
AutoVisual/IGPFamily.pde: Fixing getVectorOnExtendedLine() function to honor lines with infinite slope.
-rw-r--r--AutoVisual/IGPFamily.pde14
1 files changed, 12 insertions, 2 deletions
diff --git a/AutoVisual/IGPFamily.pde b/AutoVisual/IGPFamily.pde
index 78e3f2f..7b97c6f 100644
--- a/AutoVisual/IGPFamily.pde
+++ b/AutoVisual/IGPFamily.pde
@@ -241,10 +241,20 @@ class IGPFamily {
PVector getVectorOnExtendedLine(PVector startPoint, PVector endPoint, float boundary, boolean vertical){
float m,n;
- m = (endPoint.y-startPoint.y)/(endPoint.x-startPoint.x);
+ boolean dirac = false;
+ if (endPoint.x-startPoint.x == 0){
+ dirac = true;
+ m = 0;
+ } else {
+ m = (endPoint.y-startPoint.y)/(endPoint.x-startPoint.x);
+ }
n = endPoint.y-m*endPoint.x;
if (vertical){
- return new PVector((boundary-n)/m, boundary);
+ if (dirac){
+ return new PVector(startPoint.x, boundary);
+ }else{
+ return new PVector((boundary-n)/m, boundary);
+ }
} else {
return new PVector(boundary, (m*boundary)+n);
}