Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Seeking A Scaling Equation

by BrowserUk (Pope)
on Jul 25, 2013 at 17:02 UTC ( #1046393=note: print w/ replies, xml ) Need Help??


in reply to Seeking A Scaling Equation

In the example, there are 40 nodes. Assuming a font with a maximum height of 10 pixels, and a 10 pixel gap between, you need a circumference of:

40 * ( 10 + 10 ) == 800. So the inner radius is 800 / 2 π == 127.

The outer radius will be a function of the font size and the string lengths.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.


Comment on Re: Seeking A Scaling Equation
Re^2: Seeking A Scaling Equation
by jthalhammer (Friar) on Jul 25, 2013 at 22:25 UTC

    Very clever. I didn't think in terms of how much space each node occupied along the circumference. That approach will give me the radius that minimizes the circumference whilst keeping the nodes legible. Which is definitely better than what I had.

    But what I really want is non-linear scaling. So as the number of nodes becomes smaller, the space between them bigger. And the opposite is true when the number of nodes gets larger.

    I can easily cap the upper limit on the radius so that the graph doesn't go off the screen (although the nodes may start to overlap, which is ok at that point). But I need the lower limit on the radius to converge on some constant so that a small number of nodes aren't packed together so tightly.

    Does that make sense?

      But I need the lower limit on the radius to converge on some constant so that a small number of nodes aren't packed together so tightly.

      Calculate the radius per above and then if its less than 100 (or whatever you settle on ) set it to 100.


      With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.
        Calculate the radius per above and then if its less than 100 (or whatever you settle on ) set it to 100.

        That's pretty much what I ended up with. I just defined a couple threshold values to set the minimum and maximum allowable radius.

        Initially, I thought I would do something clever that scaled progressively according to the number of nodes. But this is much simpler, and looks good enough.

        Thanks for your help. Have a great weekend.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1046393]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (2)
As of 2014-09-17 01:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (55 votes), past polls