teichmann@5829: package org.dive4elements.river.importer.parsers.tim; sascha@4732: felix@4742: /** Two coordinates and a helper. */ sascha@4732: public class Line { sascha@4732: sascha@4732: public Coordinate a; sascha@4732: public Coordinate b; sascha@4732: sascha@4732: public Line() { sascha@4732: } sascha@4732: sascha@4732: public Line(Coordinate a, Coordinate b) { sascha@4732: this.a = a; sascha@4732: this.b = b; sascha@4732: } sascha@4732: sascha@4732: /** Project coordinate to line. */ sascha@4732: public double distanceToFirst(Coordinate c) { sascha@4732: sascha@4732: double nx = b.x - a.x; sascha@4732: double ny = b.y - a.y; sascha@4732: sascha@4732: double len = Math.sqrt(nx*nx + ny*ny); sascha@4732: sascha@4732: nx /= len; sascha@4732: ny /= len; sascha@4732: sascha@4732: double px = c.x - a.x; sascha@4732: double py = c.y - a.y; sascha@4732: sascha@4732: return nx*px + ny*py; sascha@4732: } sascha@4732: } sascha@4732: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :