eaolson
Members-
Posts
261 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Gallery
Everything posted by eaolson
-
QUOTE(rpursley @ Mar 5 2008, 12:14 PM) I think that's close, but not exact. If I understand your description correctly, I don't think the center of that box is guaranteed to be the center of your circle. See attached sketch. Sorry for the poor quality. I also attached a sketch of what I think will define the minimum containing circle.
-
QUOTE(normandinf @ Mar 4 2008, 03:22 PM) I don't think normandinf's solution will work, exactly. If you consider the case where R2 is smaller and entirely contained within R1, then the containing circle is obviously centered at (x1,y1) with radius r1. But (xc, yc) != (x1, y1). So you get a circle of the right radius at the wrong location. If the red and blue circles are indeed known and are actual circles (not thresholded outlines from some measured image, for example), you can also calculate the containing circle directly: 1. Find the line that passes through the centers of both circles. 2. Find the two points where that line passes through the outer edge of the circles. (Did that make sense? There will be four points of intersection with that line, since there are two circles; you want the two that are farthest apart.) 3. Those two points define the diameter of the containing circle. Easy to do geometrically, but there's some algebra to do for a numerical solution.
-
PLease help a newbie with a "Basics I" course question
eaolson replied to richlega's topic in LabVIEW General
QUOTE(richlega @ Feb 28 2008, 01:18 PM) My first reaction was answer "C" and I'm gratified to read that Much Smarter People had the same response. I'm just curious to know what the "correct" answer was, according to the example. -
QUOTE(alfa @ Feb 28 2008, 12:27 AM) True, but Titiana makes a killer margarita.
-
QUOTE(CTITech @ Feb 21 2008, 01:08 PM) The 9215 is a voltage-measurement board, correct? Could you put a precision, known resistor in series with your unknown, apply some voltage across both, measure the voltage drop across the known resistor (giving you current) and then measure the voltage drop across the unknown (R=V/I)?
-
QUOTE(jdunham @ Feb 19 2008, 04:14 PM) OK, that's a valid point. But because the ms timer is limited in resolution to 1 ms, I had to do a bunch of iterations and average. And this is for an empty loop. Since that's boring and you'll want to do something inside the loop, that will slow it down considerably. And since the OP was talking about QNX, this is all probably a moot point.
-
QUOTE(BobHamburger @ Feb 19 2008, 12:01 PM) I have to disagree with this. Running just a quick check, I can get an empty For loop to run at 5-7 nanoseconds, with occasional excursions to about 20 ns.
-
QUOTE(tmunsell @ Feb 14 2008, 01:05 PM) That's because you have wires leaving the main loop and going to the second loop. No data leaves a loop on a wire until the loop stops. I bet if you look again at your program with Highlighting turned on, there will be a single iteration of the second loop after you press the stop button. QUOTE Do you know where I can find some examples that I can learn from? I need to configure the second loop so that the data displayed on the front panel indicators for 4 of the channels (Vib1-4) have an adjustable time delay, but all the other channels in the main loop must run in real-time. I've been trying to find an easy way to do this (like a time delay subVI that will go inline with the data flow for those particular channels), but haven't had much luck. I'll read up on queues and see if I can understand how they work. Take a look at the General Notifier Example in the LabVIEW examples (Help : Find Examples). It's very similar to what you're trying to do. Time delay-wise, you might just convert your desired delay to milliseconds and feed that value to Wait Until Next ms Multiple. Put that in the second loop. There is also an OpenG version that can use an error cluster to enforce dataflow.
-
QUOTE(Holograms2 @ Feb 14 2008, 06:35 AM) You still haven't said which version of LabVIEW or Vision you're using. For me (8.2) it's under Vision and Motion : Machine Vision : Analytic Geometry. For some reason both functions are called IMAQ Fit Ellipse 2 and IMAQ Fit Circle 2. QUOTE Just been told that best way would be to plot a Gaussian graph of x components, and then y components and work that way rather than using an ellipse fitting function. I'm not quite sure what you mean by this. "Components" of what?
-
QUOTE(crelf @ Feb 12 2008, 09:49 AM) That would work, but it doesn't tell you how good of a fit you've got. You could also use IMAQ Fit Ellipse, then compare the lengths of the Minor Axis and Major Axis. The closer those are to equal, the more circular your shape. I hope this will not be seen as sedition, but if you're not using Vision, you might want to check out http://rsb.info.nih.gov/ij/' target="_blank">ImageJ. It's an open-source image processing program specifically intended for this sort of thing. Not being written in LabVIEW, it is of course, inferior, but it has its uses.
-
Machine Vision to test spray pattern of water
eaolson replied to dblk22vball's topic in Machine Vision and Imaging
QUOTE(dblk22vball @ Feb 6 2008, 01:12 PM) Could you maybe fit the smallest ellipse that fits all your water droplets inside it, and compare that with your target? -
QUOTE(Justin Goeres @ Jan 16 2008, 11:34 AM) Don't forget that you can right-click just about anything and there's usually a Help option that takes you to the same place as the Detailed Help link. Context help doesn't even have to be open.
-
QUOTE(Aristos Queue @ Jan 15 2008, 06:05 PM) Thanks. If you repeat something often enough, it can permeate even my thick skull.
-
I'm cleaning up a quick-and-dirty app I wrote which is turning out to be something more useful than I originally expected. What I'm thinking of turning this into would have one loop running continuously doing data acquisition and periodically a user-fired event would save the data. Data will be stored in an array. So what I'm thinking of having a single element queue to store the array. The DAQ loop dequeues the array, appends the new element, and re-queues the array. The save loop can get a snapshot of the array at any time by previewing the array and saving it to disk. Attached is sort of a sketch of what I'm thinking of. My concern is that in the dequeue-append-enqueue process, the Dequeue node has a buffer allocation on the output, I assume making a copy of what's in the queue. If the array gets large, I'm worried that will slow things down. On the other hand, I notice that neither the append or the enqueue has a buffer allocation. So maybe I'm misunderstanding where things are getting copied, and the queue is just pushing a pointer to the array around behind the scenes. Which is it? Or is there a better way of structuring this so the DAQ loop and the Save loop each have access to the same array? (Right now, everything's in a single state machine and the user can't save the data without stopping the data acquisition.)
-
QUOTE(crelf @ Jan 15 2008, 02:12 PM) Actually, I am. Yes, it took a bit of getting used to and when I need to go back to the Paint tool, I can never remember what combination of Shift, Alt, or Ctrl it is, but it works really well. That being said, if the auto-tool took two seconds for the current tool to fade away and another two seconds for the next tool to fade into view, that feature would quickly get folded, spindled, and mutilated. I'm just saying that good graphic design does not good UI make. (Can you say "Genie effect?")
-
QUOTE(Aristos Queue @ Jan 15 2008, 11:17 AM) I read Joel Spolsky's User Interface Design for Programmers not long ago. As I recall, one of his pointers is to realize that mouse action is imprecise. Not everyone's hands are as steady as everyone else's. I also don't like the fad of every sub-menu swooshing into view and then swooshing away when I'm done with it. (Macs, I'm looking at you.) It's disorienting, unnecessary, and time is spent waiting for the menu to finish animating into position. One thing I really didn't like about that example site is that it wasn't always clear what was a control and what wasn't. Sometime's I would put the mouse over some text that didn't look frobbable, and something else would smoothly animate into view. The LabVIEW pop-up palette acts this way and I often find it annoying. Right click to pop-up the palette. Look through palette options. "No, wait, I didn't want that one and now the sub menu is blocking the option I really do want." So now I have to move the mouse off to the side, wait for the sub menu to disappear, select the correct sub menu, and repeat.
-
QUOTE(alfa @ Dec 21 2007, 01:38 AM) Unfortunately, the LabVIEW Geopolitical Toolkit is a rather expensive addon.
-
Tagging on LAVA - Is there interest?
eaolson replied to Michael Aivaliotis's topic in Site Feedback & Support
QUOTE(Michael_Aivaliotis @ Dec 18 2007, 08:25 PM) I don't think it would be very useful. Tagging seems to be used mostly as a way to categorize things, especially blog posts, which don't generally have a categorization scheme in place. There is already a categorization process here on LAVA, in the form of which forum and which sub-forum something is posted to. I can see myself going to Technorati and looking at tag clouds just to see what people are talking about this week, but I don't see myself wanting to go the LAVA forums (or the NI forums, frankly) and wonder "What sort of things have people been asking questions about lately?" -
Stopping a while loop with multiple booleans
eaolson replied to eaolson's topic in LabVIEW Feature Suggestions
I should have known that someone would have already had this idea in this crowd. Heh. -
QUOTE(Justin Goeres @ Dec 14 2007, 06:18 PM) My inability to upgrade is not technical or financial, but political. Alas.
-
QUOTE(pdc @ Dec 14 2007, 12:11 PM) It gets even freakier. For me, in 8.20, the first run has the In Range? output in the bottom loop coming out as (incorrect) False for the first run, and True for the subsequent runs. Now, toggle the value of "Include upper limit" for the In Range and Coerce node in the top loop, and the next run gives False again for the bottom loop. Subsequent runs give True. Wish I could upgrade. Grump.
-
I don't know how many times I've needed to stop a while loop based on several booleans, as well as an error structure. It's a little thing, but it's kind of annoying: I'd love to see some way to combine the Compound Arithmatic node (in boolean mode) combined with the Stop/Continue node. That would be especially useful if it could be used in conjunction with error clusters as well, rather than having to unbundle the status element first. You can already wire up the error cluster directly to the Stop node, but often that's not quite enough. Something like this:
-
QUOTE(neB @ Dec 12 2007, 08:14 AM) Well, think of it this way: down at the nitty gritty level, all computers have to comply with certain electrical engineering principles. Is it meaningful to say your LabVIEW program adheres to Ohm's Law? Yes, the electrons flowing through the little metal wires do, but you can't use it do describe the software made up by those electrons. Analagously, even though the interaction of the elements in your brain are "quantum," the mind isn't. My dreams are all spaghetti code.
-
QUOTE(alfa @ Dec 7 2007, 08:54 AM) Sigh. I told myself I wasn't going to get involved in this thread anymore, but the http://scienceblogs.com/insolence/2006/06/your_friday_dose_of_woo_its_no.php' target="_blank">growing misuse of scientific terms like "quantum" rather bugs me. Not only is saying a dream is quantized ridiculous (what's the smallest possible increment of a dream?), but saying that the Schrödinger equation applies to dreams is complete gibberish. You can't apply mathematical concepts to an abstract concept like that of a dream. It's like asking someone to take the logarithm of a pineapple.