U
vickal93 schrieb:
nicht mehr richtig funktioniert
Allerding klappt es so leider nicht.
Vec4i previous = lines[i - 1];
was passiert hier wohl beim ersten punkt; also i = 0?
`double angle = atan2(pt2.y - pt1.y, pt2.x - pt1.x) * 180.0 / CV_PI;
if (angle) { ... }
`
if(double_wert) finde ich sehr sehr unschön.
line(..) also ich bin zwar so und so eher ein trottel, da ich schon deine fehlerbeschreibung nicht verstanden habe, aber wieso du hier eine linie zeichnest(?), erschließt sich mir nicht. eventuell hast du vergessen, deinen code auf das wesentliche zu kürzen?
for(size_t i;; ){ for(int i;; ){} } finde ich genau so unschön.
und damit meine ich nicht mal int als indextyp.
Vec4i current = lines[i];
Point pt1 = Point(current[0], current[1]);
Point pt2 = Point(current[2], current[3]);
Vec4i previous = lines[i - 1];
Point ppt1 = Point(previous[0], previous[1]);
Point ppt2 = Point(previous[2], previous[3]);
pt.push_back(Point(current[0], current[1]));
pt.push_back(Point(current[2], current[3]));
pt.push_back(Point(previous[0], previous[1]));
pt.push_back(Point(previous[2], previous[3]))
scheint mir kein idealer weg...
wie wäre es, wenn du es erst mal ausführlicher versuchst?
lines -> points
dann den eigentlichen algo:
erster punkt
andere punkte
was passiert am ende mit subregions ?
bb