Talk:Convex hull: Difference between revisions

Ok, that IS a bug.
mNo edit summary
(Ok, that IS a bug.)
 
(11 intermediate revisions by 2 users not shown)
Line 124:
::: Hmm... I do not see how changing the winding order could cause these sorts of discrepancies. Which suggests to me that the problem is elsewhere and swapping the first two arguments to ccw merely conceals the problem without actually fixing it.
::: That said, I also do not know how to isolate a problem which I do not have. --[[User:Rdm|Rdm]] ([[User talk:Rdm|talk]]) 18:59, 24 December 2020 (UTC)
:::: I had the same problem with my Phix translation of the C code, however I <u>only</u> needed to add the fogotten t.
:::: I also added more tests and a simple plot for visual verification of the results. I will also point out that the Raku (and therefore also Sidef) output is wrong in that the (1,-9) of (-3, -9) (1, -9) (14, -9) is clearly colinear and therefore should not be part of the hull. --[[User:Petelomax|Pete Lomax]] ([[User talk:Petelomax|talk]]) 19:19, 24 December 2020 (UTC)
 
::::: I don't know, if your question is "which of these given points are on the hull?" than then the Raku implementation would be correct. I note that the task is somewhat vague in that regard. At any rate, if it offends you so, change the line <code>if ccw( |@h.tail(2), $point ) >= 0 {</code> to <code>if ccw( |@h.tail(2), $point ) > 0 {</code> and intermediate colinear points will not be reported. It doesn't bother me enough to change it. --[[User:Thundergnat|Thundergnat]] ([[User talk:Thundergnat|talk]]) 22:33, 29 December 2020 (UTC)
 
:::::: Apparently that's not legal Raku (I put the one = back in and it's fine again, took that one char out and it broke again, a real ??!!??WTF??!! moment):
::::::: Ah, of course: it starts with ((-3, -9), (1, -9)) but the first thing it does is pop the (1,-9). --[[User:Petelomax|Pete Lomax]] ([[User talk:Petelomax|talk]]) 03:21, 30 December 2020 (UTC)
Convex Hull (7 points): [(-3, -9) (19, -8) (17, 5) (12, 17) (5, 19) (-3, 15) (-9, -3)]
Too few positionals passed; expected 3 arguments but got 2
in sub ccw at ./main.raku line 7
in sub graham-scan at ./main.raku line 39
in block <unit> at ./main.raku line 57
 
exit status 1
:::::: The diagram at 1:00 of the Youtube link is very clear on this matter, plus what he says at 1:22, it seems common sense to me that if the set is every pixel used to draw a 400x400 square outline, the convex hull is 4 points, not all 1,596. --[[User:Petelomax|Pete Lomax]] ([[User talk:Petelomax|talk]]) 03:03, 30 December 2020 (UTC)
 
:::::::Ah. Ok, '''that''' definitely ''is'' a bug, untrapped edge condition. I'll fix that. While I'm at it, I'll edit the example to ignore colinear points. I don't think my interpretation was completely bogus, but you've convinced me that it is '''less''' correct. (And it's changing one character, not a big deal.) --[[User:Thundergnat|Thundergnat]] ([[User talk:Thundergnat|talk]]) 14:54, 30 December 2020 (UTC)
10,327

edits