--- Log opened Sun Aug 22 00:00:42 2010 |
00:11 | | cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
00:12 | | cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has joined #code |
00:15 | | Derakon [Derakon@Nightstar-cfae48c3.ca.comcast.net] has joined #code |
00:15 | | mode/#code [+o Derakon] by Reiver |
00:20 | | cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
00:21 | | cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has joined #code |
00:24 | | cpux_ [chatzilla@Nightstar-20a84089.dyn.optonline.net] has joined #code |
00:26 | | cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
00:26 | | cpux_ is now known as cpux |
00:29 | | You're now known as TheWatcher[t-2] |
00:32 | | You're now known as TheWatcher[zZzZ] |
01:18 | <@ToxicFrog> | I hate colorspaces. |
01:18 | <@Derakon> | Photos of the GIANT SPACE COLLAGE! http://derakon.dyndns.org/~chriswei/temp/spacecollage/ |
01:18 | <@ToxicFrog> | Hate so much. |
01:19 | | * ToxicFrog is trying to turn Dosbox ZMBV (RGB24 colorspace) into something publishable. |
01:47 | | Serah [Z@26ECB6.A4B64C.298B52.D80DA0] has quit [Ping timeout: 121 seconds] |
02:15 | <@Derakon> | Animation of my Delaunay triangulation implementation: http://derakon.dyndns.org/~chriswei/temp2/delaunay.gif |
02:24 | | Derakon is now known as Derakon[CIV] |
02:24 | | RichardBarrell [mycatverbs@Nightstar-689c9c54.cable.virginmedia.com] has quit [Ping timeout: 121 seconds] |
02:30 | | Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has joined #code |
03:42 | | Derakon[CIV] is now known as Derakon |
03:57 | | Vornicus-Latens is now known as Vornicus |
03:57 | | * Derakon directs Vorn's attention upwards. |
03:59 | < Vornicus> | Der: awesome! |
03:59 | < Vornicus> | But I'd like to see which ones are "dirty" - can you tint dirty ones red? |
03:59 | | * Vornicus wants your code, too. |
03:59 | <@Derakon> | You mean, edges that need to be reprocessed? |
04:00 | < Vornicus> | Yeah |
04:03 | | * Derakon throws something together, gets crossing clean/dirty edges. Weird. |
04:08 | <@Derakon> | Okay, source code is online at http://derakon.dyndns.org/~chriswei/temp/delaunay.tgz. |
04:09 | <@Derakon> | You'll need Cython installed to make use of the vector2d class. |
04:09 | <@Derakon> | (Or you could just strip it back down to pure Python, or replace it with numpy arrays, or something similar) |
04:11 | <@Derakon> | And here's the quick thrown-together "draw dirty edges" animation. http://derakon.dyndns.org/~chriswei/temp2/delaunay2.gif |
04:13 | < Vornicus> | That is weird that you're getting crossing edges. |
04:13 | <@Derakon> | My guess is the "draw dirty edges" logic is flawed somehow. *shrug* |
04:13 | <@Derakon> | It's just drawing whatever's in the edge queue. |
04:15 | < Vornicus> | aha |
04:22 | <@Derakon> | I apologize for the state of the code, incidentally. |
05:01 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
05:02 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code |
05:02 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
05:33 | | Stalker [Z@3A600C.A966FF.5BF32D.8E7ABA] has quit [Ping timeout: 121 seconds] |
05:33 | | cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
05:34 | | cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has joined #code |
05:44 | | cpux is now known as shade_of_cpux |
05:58 | | shade_of_cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
06:02 | | Netsplit *.net <-> *.split quits: Namegduf, @Kazriko, Thaqui, @jerith |
06:03 | | Netsplit over, joins: @jerith, Thaqui, @Kazriko, Namegduf |
06:27 | | Netsplit *.net <-> *.split quits: @Kazriko, @jerith, Thaqui, Namegduf |
06:27 | | Derakon is now known as Derakon[AFK] |
06:28 | | Netsplit over, joins: @jerith, Thaqui, @Kazriko, Namegduf |
06:38 | | Netsplit *.net <-> *.split quits: @Kazriko, @jerith, Thaqui, Namegduf |
06:40 | | Netsplit over, joins: @jerith, Thaqui, @Kazriko, Namegduf |
06:42 | | Netsplit *.net <-> *.split quits: Thaqui, Namegduf, @Kazriko, @jerith |
06:46 | | Netsplit over, joins: @jerith, Thaqui, @Kazriko, Namegduf |
06:49 | | Netsplit *.net <-> *.split quits: Thaqui, Namegduf, @Kazriko, @jerith |
06:50 | | Netsplit over, joins: @jerith, Thaqui, @Kazriko, Namegduf |
06:56 | | Netsplit *.net <-> *.split quits: Thaqui, Namegduf, @Kazriko, @jerith |
06:57 | | Netsplit over, joins: @jerith, Thaqui, @Kazriko, Namegduf |
07:06 | | Rhamphoryncus [rhamph@Nightstar-bbc709c4.abhsia.telus.net] has joined #code |
07:12 | | Netsplit *.net <-> *.split quits: Thaqui, Namegduf, @Kazriko, @jerith |
07:13 | | Netsplit over, joins: @jerith, Thaqui, @Kazriko, Namegduf |
07:16 | | PinkFreud [WhyNot@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
07:16 | | Derakon[AFK] [Derakon@Nightstar-cfae48c3.ca.comcast.net] has quit [Ping timeout: 121 seconds] |
07:17 | | PinkFreud [WhyNot@NetworkAdministrator.Nightstar.Net] has joined #code |
07:52 | < Reiv> | Hey is there a way to get TV-out if it doesn't come on the gfx card? It seems most of the local options are either "Good card" or "TV-out". |
07:56 | | Netsplit *.net <-> *.split quits: Thaqui, Namegduf, @Kazriko, @jerith |
07:58 | < Alek> | Reiv: there's probably adapters that take video in and give TV out. |
08:00 | | Netsplit over, joins: @Kazriko, @jerith, Namegduf, Thaqui |
08:04 | | Netsplit *.net <-> *.split quits: Thaqui, Namegduf, @Kazriko, @jerith |
08:05 | | Netsplit over, joins: @jerith, Thaqui, @Kazriko, Namegduf |
08:21 | | Reiver is now known as Reivles |
08:21 | | Reiv is now known as Reiver |
08:48 | | Netsplit *.net <-> *.split quits: Thaqui, Namegduf, @Kazriko, @jerith |
08:49 | | Netsplit over, joins: @jerith, Thaqui, @Kazriko, Namegduf |
08:54 | | Netsplit *.net <-> *.split quits: Thaqui, Namegduf, @Kazriko, @jerith |
08:55 | | Netsplit over, joins: @jerith, Thaqui, @Kazriko, Namegduf |
09:00 | | Netsplit *.net <-> *.split quits: Thaqui, Namegduf, @Kazriko, @jerith |
09:01 | | Netsplit over, joins: @jerith, Thaqui, @Kazriko, Namegduf |
09:08 | | Netsplit *.net <-> *.split quits: Thaqui, Namegduf, @Kazriko, @jerith |
09:09 | | Netsplit over, joins: @jerith, Thaqui, @Kazriko, Namegduf |
09:15 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Connection closed] |
09:37 | | Netsplit *.net <-> *.split quits: Namegduf, @Kazriko, @jerith |
09:38 | | Netsplit over, joins: @jerith, @Kazriko, Namegduf |
10:06 | | Netsplit *.net <-> *.split quits: Namegduf, @Kazriko, @jerith |
10:11 | | Netsplit over, joins: Kazriko |
10:11 | | shade_of_cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has joined #code |
10:11 | | Netsplit over, joins: @jerith, Namegduf |
10:11 | | ServerMode/#code [+oo Kazriko jerith] by *.Nightstar.Net |
10:22 | | Netsplit *.net <-> *.split quits: Namegduf, shade_of_cpux, @Kazriko, @jerith |
10:23 | | Netsplit over, joins: @jerith, @Kazriko, shade_of_cpux, Namegduf |
10:29 | | You're now known as TheWatcher |
10:31 | | AnnoDomini [annodomini@Nightstar-80060041.adsl.tpnet.pl] has joined #code |
10:31 | | mode/#code [+o AnnoDomini] by Reivles |
12:34 | | Stalker [Z@26ECB6.A4B64C.298B52.D80DA0] has joined #code |
12:48 | | RichardBarrell [mycatverbs@Nightstar-689c9c54.cable.virginmedia.com] has joined #code |
12:58 | < Reiver> | Vorn: Minor bug in your Multiplication Code |
12:58 | < Reiver> | It accepts an 'enter' as a '0' |
12:59 | < Reiver> | Is this intentional? |
12:59 | < Vornicus> | Intentional |
13:00 | < Vornicus> | well. not /entirely/ so. but close enough |
13:04 | < Vornicus> | it's more of a "this is too much touble to fix and makes it so I can't test quickly" so |
13:06 | < Reiver> | Aaah, fair :) |
13:06 | < Reiver> | The idea being "Hold down enter and see if you get both right and wrongs"? |
13:09 | < Vornicus> | Indeed |
13:13 | < Vornicus> | Also I'm thinking about making a division drill. |
13:18 | < Reiver> | Integer? |
13:20 | < Vornicus> | Yeah. Two ponderments I had were: how do I dictate scale, and do I want to be able to ask questions with a remainder? |
13:22 | < Reiver> | 8r9 |
13:22 | < Reiver> | 9r8 would work better, of course~ |
13:22 | < Reiver> | Of course, this means you can't just numpad it |
13:22 | < Vornicus> | right, but the way I go I can't just numpad it /anyway/ - I need a finger on the delete key. |
13:24 | < Reiver> | a point |
13:24 | < Reiver> | And it is my failure to deletekey position that costs me a lot of time. |
13:25 | < Reiver> | ... huh what's going on there |
13:25 | < Reiver> | caching, perhaps? |
13:26 | < Vornicus> | ?? |
13:27 | < Reiver> | In opera, the timer goes kazoom to the right. |
13:27 | < Reiver> | Then fills the entire top screen and I am left to carry on. |
13:27 | < Reiver> | I was wondering if there was a bug in how many divisions on the screen it was showing. |
13:27 | < Vornicus> | wtf |
13:28 | < Vornicus> | Reiver: if you're using version 2? No, that shouldn't happen. |
13:28 | < Reiver> | (AKA: Within a second or so of starting the timer looks like it has run out of time, but I can continue.) |
13:28 | | * Vornicus doesn't have Opera though, and has not tested it. |
13:29 | < Vornicus> | Does this reliably? |
13:30 | < Vornicus> | (if I had to guess, it's misinterpreting the style command I'm sending. |
13:31 | < Reiver> | It seems to do it every attempt |
13:31 | < Reiver> | Chrome behaves as expected. |
13:32 | < Vornicus> | I tested on Chrome, IE, and Firefox. |
13:32 | | * TheWatcher has opera too, linkme and I'll see if it does the same here |
13:33 | < Reiver> | http://www.funkyhorror.net/vornicus/multiplication_drill.html |
13:34 | < Vornicus> | TW: expected behavior is that the black bar in the bottom quarter or so of the grey bar at the top fills slowly, and would take about 3 minutes to do so. |
13:35 | <@TheWatcher> | Hm, I'm getting no movement on the timer |
13:35 | < Reiver> | TW: Start the test |
13:35 | <@TheWatcher> | (ie: the whole thing is black, with a sliver of red in the left) |
13:35 | <@TheWatcher> | I have |
13:35 | < Reiver> | Oh, yes |
13:35 | < Reiver> | It's not mean to be black. The black part is meant to move across slowly |
13:35 | <@TheWatcher> | Oh, wait |
13:35 | < Reiver> | Restart it and you will see the black actually go ZOOM |
13:36 | < Reiver> | Sufficiently fast it just looks like a stripe after the first second~ |
13:36 | <@TheWatcher> | Ah, I see |
13:37 | <@TheWatcher> | Hm. |
13:38 | | * TheWatcher saves a local copy, tries something |
13:39 | | * TheWatcher suspects Opera is not happy about the timer table |
13:40 | < Reiver> | TheWatcher: This would be correct |
13:40 | < Reiver> | But the timer worked acceptably here: http://www.funkyhorror.net/toxicfrog/multiplication_drill.html |
13:42 | < Vornicus> | if by "acceptably" you mean "has an incorrect rate, starts and ends wrong, and requires complicated math to adjust for different time amounts" |
13:44 | <@TheWatcher> | okay, vorn |
13:44 | < Vornicus> | (and the amount by which the rate is incorrect depends on how wide your screen is. How's that for wackadoo.) |
13:44 | <@TheWatcher> | <div class="unsolved" style="width: 100%; border-collapse: collapse; height: 5px"><div class="clock" style="height: 5px; width: 0" id="newtimer"> </div></div> |
13:44 | < Vornicus> | Instead of a table. |
13:44 | | * TheWatcher nod |
13:45 | < Vornicus> | And that's really the only change? |
13:45 | <@TheWatcher> | you need to change #timer TD to just be #timer |
13:45 | <@TheWatcher> | Oh, wait, ignore that |
13:45 | <@TheWatcher> | it's irrelivant |
13:45 | <@TheWatcher> | Yeah, that should be the only change you need |
13:45 | < Vornicus> | Probably actually dead code, that bit. |
13:46 | <@TheWatcher> | And it seems to work fine in both opera and firefox here |
13:48 | <@TheWatcher> | http://fleet.starforge.co.uk/Multiplication%20Drill!.htm for ref |
13:48 | < Vornicus> | And in Chrome as well. |
13:50 | <@TheWatcher> | Reiver: can you confirm that works okay in your opera? |
13:58 | < Reiver> | It's working fine, ableit at 1-second ticks |
13:58 | < Reiver> | (Unsure whether that's intentional or not so just pointing it out) |
13:59 | < Vornicus> | Wouldn't be 1-second ticks, most likely. |
14:00 | < Vornicus> | 1.8 second ticks, perhaps. |
14:00 | < Vornicus> | (which is what happens in IE, too) |
14:02 | < Reiver> | Interesting, why? |
14:02 | < Rhamphoryncus> | Bah, 92.9 seconds |
14:04 | < Rhamphoryncus> | I was hoping to have a decent improvement the second time |
14:04 | < Vornicus> | 180/100 = 1.8 |
14:05 | < Vornicus> | If it's going in chunks about half a problem step wide, it's stepping every 1.8 seconds because the browser does not recognize non-integer percentages. |
14:06 | < Reiver> | aaah |
14:06 | < Reiver> | That's a bit of a clutz. |
14:07 | < Reiver> | On the browser side, I mean. |
14:07 | | Rhamphoryncus [rhamph@Nightstar-bbc709c4.abhsia.telus.net] has quit [Client exited] |
14:52 | | RichardBarrell [mycatverbs@Nightstar-689c9c54.cable.virginmedia.com] has quit [Ping timeout: 121 seconds] |
14:54 | | Stalker is now known as Prowler |
15:02 | | Prowler [Z@26ECB6.A4B64C.298B52.D80DA0] has quit [Ping timeout: 121 seconds] |
15:07 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code |
15:20 | | Stalker [Z@26ECB6.A4B64C.298B52.D80DA0] has joined #code |
15:27 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [[NS] Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.] |
15:27 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code |
16:31 | | shade_of_cpux is now known as cpux |
17:06 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
18:06 | | shade_of_cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has joined #code |
18:08 | | cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
18:08 | | shade_of_cpux is now known as cpux |
18:11 | | cpux_ [chatzilla@Nightstar-20a84089.dyn.optonline.net] has joined #code |
18:12 | | cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
18:12 | | cpux_ is now known as cpux |
18:49 | | Stalker [Z@26ECB6.A4B64C.298B52.D80DA0] has quit [[NS] Quit: If the world didn't suck, we'd all fall off.] |
18:52 | | Stalker [Z@26ECB6.A4B64C.298B52.D80DA0] has joined #code |
19:33 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has joined #code |
20:17 | | Derakon [Derakon@Nightstar-cfae48c3.ca.comcast.net] has joined #code |
20:17 | | mode/#code [+o Derakon] by Reivles |
20:19 | | * Derakon determines that the slow part of his triangulator is in the edge-flipping bit. |
20:19 | <@Derakon> | Now to refactor the code so I can get sensical results out of profiling. ¬.¬ |
20:21 | < Vornicus> | edge-flipping is probably the hardest - and do note that you've got some waste calls in there cuz you seem to have spurious edges. |
20:22 | <@Derakon> | Well, it's more that when I increase the number of nodes in the graph, I get a very noticeable slowdown in the speed of edge flipping. |
20:22 | <@Derakon> | So there's some extraneous iteration going on, I suspect. |
20:24 | | aoanla [AndChat@Nightstar-4d8219fd.range81-129.btcentralplus.com] has joined #code |
20:25 | < Vornicus> | Aha. Most likely cause I bet is you're doing checks on every possible pair, as opposed to just doing a set intersect? |
20:25 | <@Derakon> | Possibly. |
20:26 | <@Derakon> | I don't think so, though. I suspect it's simply a matter of the number of neighbors of any given node increasing. |
20:26 | <@Derakon> | But I'll take a closer look after I'm done refactoring. |
20:33 | | RichardBarrell [mycatverbs@Nightstar-689c9c54.cable.virginmedia.com] has joined #code |
20:37 | <@Derakon> | for n1, n2 in [(n, hullNodes[(i + 1) % len(hullNodes)]) for i, n in enumerate(hullNodes)]: |
20:37 | <@Derakon> | I think I might have been trying to shove too much into one iteration rule... |
20:38 | < RichardBarrell> | Yes. Yes, you have. |
20:41 | | * Vornicus is very confused as to what the hell that thing's supposedto even /do/ |
20:42 | <@Derakon> | Given three vertices, construct the edges for each vertex. |
20:42 | < Vornicus> | aha |
20:42 | <@Derakon> | Well, that's the iteration portion of that logic. |
20:47 | < RichardBarrell> | Derakon: why not write it as, for i, n1 in enumerate(hullNodes):\n\tn2 = hullNodes[(i + 1) % len(hullNodes)] # ? |
20:48 | < RichardBarrell> | I'm not sure whether you'd want to hoist len(hullNodes) out of the loop there. |
20:48 | <@Derakon> | Because I didn't think of it that way when I wrote it? |
20:48 | <@Derakon> | This code is not in the best of shape. |
20:49 | < RichardBarrell> | Fair 'nuff. |
20:57 | <@Derakon> | By the way, Vorn, I came up with a better way to handle the "no diagonal corridors in axis-aligned zones". |
20:57 | <@Derakon> | I'll just remove those edges, and then generate the graph using a spanning tree with selectively-added edges instead of taking the triangulation and removing edges. |
20:58 | <@Derakon> | Not sure why I wanted to start from a complete graph and remove edges in the first place... |
21:00 | | cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
21:00 | | cpux_ [chatzilla@Nightstar-20a84089.dyn.optonline.net] has joined #code |
21:00 | | cpux_ is now known as cpux |
21:02 | <@Derakon> | Hm. 540-node triangulation took 27 seconds, of which 8 were spent calculating 1.1 million line-line intersections, another 6 were spent making 1.1 million lines, and 3 were spent edge-flipping. |
21:03 | < Vornicus> | Are you still calculating circumcircles with line intersections? |
21:04 | <@Derakon> | Yes. |
21:04 | < Vornicus> | Don't do that. Wikipedia has a perfectly fine closed-form version. |
21:05 | <@Derakon> | So they do. |
21:06 | < Vornicus> | (use the one where A's been translated to 0) |
21:10 | | * Derakon breaks it horribly, whee! |
21:11 | <@Derakon> | http://derakon.dyndns.org/~chriswei/temp2/horriblybroken.png |
21:12 | | Vornicus is now known as Finerty |
21:13 | | Tarinaky [Tarinaky@Nightstar-f349ca6d.plus.com] has joined #code |
21:27 | | RichardB_ [mycatverbs@Nightstar-689c9c54.cable.virginmedia.com] has joined #code |
21:29 | | RichardBarrell [mycatverbs@Nightstar-689c9c54.cable.virginmedia.com] has quit [Ping timeout: 121 seconds] |
21:32 | <@Derakon> | Oh, durr. Forgot to un-transform the center after calculating it. |
21:33 | <@Derakon> | That doesn't seem to have made a big difference in my line calculations, though. 26.85s now. |
21:35 | < Finerty> | You can short circuit it some: you never have to calculate for any pair of points that's farther apart than the existing diameter. Don't even technically have to sqrt for that. |
21:35 | <@Derakon> | Ah, the problem is in my "make convex hull" code, which starts by finding the closest node to a given node where there are no obstructing edges. |
21:35 | <@Derakon> | That's 20s of the 27s runtime right there. |
21:36 | < Finerty> | If you're only loking for the convex hull and you know it's convex, use the same thing I described last, except start at the farthest-left point. |
21:36 | < Finerty> | last week that is |
21:37 | <@Derakon> | The "find closest node, walk clockwise" algorithm? |
21:37 | <@Derakon> | Which broke down when the closest node was obscured by an edge? |
21:37 | < Finerty> | Right. |
21:37 | <@Derakon> | Which is why I added the "find closest node that isn't obscured" logic? |
21:37 | < Finerty> | Instead, find the most extreme node side-to-side; this way, you know it's not obscured cuz nothing else is over there. |
21:37 | <@Derakon> | Er... |
21:38 | <@Derakon> | What if the node I'm trying to add is on the right side? |
21:38 | <@Derakon> | Oh, wait, no. |
21:38 | <@Derakon> | You're saying, start the walk from the leftmost node. |
21:38 | < Finerty> | That'd work too. I was trying to say "furthest counterclockwise" but leftmost node works too and is a hell of a lot easier to cache. |
21:39 | <@Derakon> | I was actually thinking, the hull doesn't change much per-iteration. Some number of nodes get obscured and a new node is added to the hull in their place. |
21:39 | <@Derakon> | It ought to be possible to avoid recalculating it each time. |
21:40 | < Finerty> | Just pop off the nodes in the "middle" of the non-obscured list -- because that will be contiguous. |
21:40 | <@Derakon> | I think I follow. |
21:41 | <@Derakon> | So given a hull A-B-C-D-E-F-G-... |
21:41 | <@Derakon> | And I added a new node Z, which has edges to C, D, E, F... |
21:41 | <@Derakon> | The new hull is A-B-C-G-F-G... |
21:41 | <@Derakon> | Er. |
21:41 | <@Derakon> | A-B-C-Z-F-G-... |
21:41 | < Finerty> | Indeed. |
21:42 | < Finerty> | This is however problematic in one situation. |
21:42 | <@Derakon> | Oh? |
21:42 | < Finerty> | If there is only one edge facing /away/ from your current node, then all your existing nodes are in the list. |
21:43 | <@Derakon> | IOW I do some extra work when I add in the new node since no old nodes are removed. |
21:43 | < Finerty> | Other way around. |
21:43 | <@Derakon> | On the flipside, I'm saved from considering all the other nodes that aren't in the hull because I've already calculated them. |
21:43 | <@Derakon> | Oh, yes. |
21:44 | < Finerty> | In which case, the only nodes left are your new node and the two nodes connected to that edge. |
21:44 | <@Derakon> | Doesn't seem like a huge problem. |
21:47 | <@Derakon> | Oh, wait, I see. |
21:47 | <@Derakon> | The natural inclination would be "if node A is connected to new node, and its neighbors are also connected, then node A is no longer in the hull". |
21:48 | <@Derakon> | But that breaks down as you described. |
21:48 | < Finerty> | Right - instead of getting a nice clean list of nodes, you're getting /all/ the nodes. |
21:48 | < Finerty> | So what you do is, I guess, if you get all the nodes, you need to figure out which one edge is pointing away, and then you're all good. |
21:49 | <@Derakon> | If node A is connected to new node, and node A has no edges that are occluded from the new node by an old hull node, then node A is no longer in the hull. |
21:50 | <@Derakon> | That would involve some line intersection tests. Your suggestion is probably faster. |
21:50 | <@Derakon> | But a bit less general. |
21:51 | < Finerty> | or or or, calculate line facing on each thing. If it's on at least one back-facing edge, then it's still part of the hull. |
21:52 | <@Derakon> | Back-facing as in dot-product of it onto vecter from new node to hull average position is negative? |
21:52 | < Finerty> | Cross product |
21:53 | < Finerty> | Or, wait, that would be dot, never mind. |
21:53 | <@Derakon> | \o/ |
21:53 | <@Derakon> | Problem of course is getting the edge vector pointed in the right direction. |
22:00 | | * AnnoDomini is trying to determine where Oolite expansions are to be placed. |
22:00 | <@AnnoDomini> | The wiki tells me that they're in $HOME/.Oolite/AddOns, but that doesn't seem to exist. |
22:00 | <@AnnoDomini> | I'm parsing that as the user's home directory, right? |
22:02 | < Finerty> | wait, would it be dot? |
22:03 | | RichardB_ is now known as RichardBarrell |
22:03 | <@Derakon> | The dot product is the scalar projection of vector A onto vector B. |
22:03 | <@Derakon> | If they point in opposite directions, then it will be negative. |
22:04 | < Finerty> | Node further from the line to node closer, then. |
22:04 | < Finerty> | Is your edge direction. |
22:05 | < Finerty> | Aaaand it doesn't work on ones that cross the line. |
22:05 | <@Derakon> | I'm not following your statements, I'm afraid. |
22:05 | <@Derakon> | Let's say I have an edge (A, B). |
22:05 | <@Derakon> | And I have a hull center c. |
22:05 | < Finerty> | Aaaaaand it doesn't work on some other lines either! |
22:05 | <@Derakon> | The hull center is simply the average of all nodes in the hull. |
22:06 | <@Derakon> | Remember we only engage this when we ran the first algorithm and came up with a hull consisting only of our new node. |
22:06 | <@Derakon> | So let's take the average of A and B, subtract c from it, and get an outward-facing vector V. |
22:06 | < Finerty> | No, no, what I'm saying is that this is... |
22:06 | <@Derakon> | This isn't going to be perpendicular to the edge in most cases but I doubt it'll matter. |
22:06 | < Finerty> | This product thing doesn't... |
22:06 | < Finerty> | God, how do I explain. |
22:07 | < Finerty> | The dot product only tells you if the edge is facing towards /infinity/ in the direction of the new node. |
22:08 | < Finerty> | The cross product ANxBN will give you a scalar and its sign will reliably tell you whether an edge is backfacing or not. |
22:08 | < Finerty> | Just cycle around the edges. |
22:08 | < Finerty> | And by using the cross product /exclusively/ you never have to intersect lines. |
22:09 | < Finerty> | In any case. |
22:10 | <@Derakon> | I don't like cross products. ¬.¬ |
22:10 | <@Derakon> | In part because they don't really make sense in 2D. |
22:10 | <@Derakon> | (But we only care about the sign; I get that) |
22:10 | < Finerty> | That's too damn bad. |
22:13 | <@Derakon> | Still have the issue of determining which of two possible facings for an edge is valid. |
22:14 | <@Derakon> | Anyway, I need to get outside for a bit. Been cooped up all weekend. |
22:14 | <@Derakon> | Be back later. |
22:14 | | Derakon is now known as Derakon[AFK] |
22:14 | <@Derakon[AFK]> | (Thanks, as always, for the help) |
22:14 | < Finerty> | If you always go in the same direction around the thing, it will always be the same sign, no matter how many nodes you add to the hull. |
22:18 | | aoanla [AndChat@Nightstar-4d8219fd.range81-129.btcentralplus.com] has quit [[NS] Quit: ] |
22:30 | | Thaqui [Thaqui@27B34E.D54D49.F53FA1.6A113C] has quit [Connection closed] |
22:34 | | celticminstrel [celticminstre@Nightstar-f8b608eb.cable.rogers.com] has joined #code |
22:37 | | Stalker [Z@26ECB6.A4B64C.298B52.D80DA0] has quit [[NS] Quit: If the world didn't suck, we'd all fall off.] |
22:39 | | Stalker [Z@26ECB6.A4B64C.298B52.D80DA0] has joined #code |
23:05 | <@ToxicFrog> | Fuuuuuck video editing of any kind. |
23:06 | <@ToxicFrog> | Dosbox generates RGB24, all codecs that anything actually supports use YV12, RGB24->YV12 conversion is lossless. BUT WAIT THERE'S MORE recent ffmpeg builds crash when you try to encode to H.264! So maybe I have to use mencoder, but that hasn't been updated in over a year |
23:16 | | Derakon[AFK] is now known as Derakon |
23:23 | <@McMartin> | The Old Version Of MediaCoder is basically the way to go, as far as I can tell |
23:23 | <@McMartin> | Especially since YouTube shits itslef half the time on H.264 anyhow |
23:33 | | RichardBarrell [mycatverbs@Nightstar-689c9c54.cable.virginmedia.com] has quit [Ping timeout: 121 seconds] |
23:34 | | RichardBarrell [mycatverbs@Nightstar-689c9c54.cable.virginmedia.com] has joined #code |
23:39 | | Tarinaky [Tarinaky@Nightstar-f349ca6d.plus.com] has quit [Connection closed] |
23:45 | | You're now known as TheWatcher[T-2] |
23:47 | | You're now known as TheWatcher[zZzZ] |
23:47 | | crem [moo@2D9A5E.4363FC.B8C774.D2B68F] has quit [Connection reset by peer] |
23:54 | | crem [moo@2D9A5E.4363FC.B8C774.D2B68F] has joined #code |
23:55 | | cpux [chatzilla@Nightstar-20a84089.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
--- Log closed Mon Aug 23 00:00:43 2010 |