예제 #1
0
 def __init__(self, width, length, ballSize, units):
     self.width = width
     self.length = length
     self.editor = [
         DialogFloat("radius",
                     "Radius",
                     units=units,
                     default=min(width, length) / 2,
                     min=1.0,
                     max=max(width, length) * 2.0),
         DialogFloat("turns", "Turns", default=10.0, min=.1, max=200.0),
         DialogFloat("angleStart", "Starting angle", units="degrees"),
         DialogFloat("angleRate",
                     "Sample rate",
                     units="degrees",
                     min=1,
                     default=5.0),
         DialogYesNo("fill", "Fill", default=False),
         DialogYesNo("fitToTable", "Fit to table"),
         DialogBreak(),
         DialogFloat("xCenter",
                     "X Center",
                     units=units,
                     default=width / 2.0),
         DialogFloat("yCenter",
                     "Y Center",
                     units=units,
                     default=length / 2.0),
     ]
예제 #2
0
 def __init__(self, width, length, ballSize, units):
     self.editor = [
         DialogInt("depth", "Depth of fractility", default=2, min=1, max=7),
         DialogYesNo("fit", "Auto-fit to table", default=False),
         DialogYesNo("round", "Rounded edges", default=False),
         DialogBreak(),
         DialogFloat("xOffset", "X Origin", units=units, default=0.0),
         DialogFloat("yOffset", "Y Origin", units=units, default=0.0),
         DialogFloat("width", "Width (x)", units=units, default=width),
         DialogFloat("length", "Length (y)", units=units, default=length),
     ]
예제 #3
0
 def __init__(self, width, length, ballSize, units):
     self.width = width
     self.length = length
     self.editor = [
         DialogInts("teeths",
                    "Wheel Teeth",
                    units="n1,n2,...",
                    default=[40, -30],
                    min=-60,
                    max=60,
                    minNums=2,
                    maxNums=3),
         DialogInt("resolution", "Resolution", default=7, min=1, max=60),
         DialogYesNo("fitToTable", "Fit to table"),
         DialogBreak(),
         DialogFloat("xCenter",
                     "X Center",
                     units=units,
                     default=width / 2.0),
         DialogFloat("yCenter",
                     "Y Center",
                     units=units,
                     default=length / 2.0),
         DialogFloat("radius",
                     "Radius",
                     units=units,
                     default=min(width, length) / 2,
                     min=1.0),
     ]
예제 #4
0
 def __init__(self, width, length, ballSize, units):
     self.editor = [
         DialogInt("depth", "Depth of fractility", default=2, max=10),
         DialogFloat("branchProbability",
                     "Probability of branching",
                     default=0.7,
                     min=0.0,
                     max=1.0),
         DialogFloat("percent", "Fractility size decrease", default=0.3),
         DialogYesNo("round", "Rounded crystals", default=False),
         DialogInt("seed",
                   "Random seed",
                   default=1,
                   min=0,
                   max=10000,
                   rbutton=True),
         DialogBreak(),
         DialogFloat("xCenter",
                     "X Center",
                     units=units,
                     default=width / 2.0),
         DialogFloat("yCenter",
                     "Y Center",
                     units=units,
                     default=length / 2.0),
     ]
     self.table = [(0.0, 0.0), (width, length)]
예제 #5
0
 def __init__(self, width, length, ballSize, units):
     self.editor = [
         DialogFloat("maxHeight",
                     "Maximum height",
                     units=units,
                     default=length * .75,
                     min=1.0,
                     max=length),
         DialogFloat("maxWind",
                     "Maximum wind",
                     units=units,
                     default=inchesToUnits(1., units),
                     min=0.,
                     max=inchesToUnits(4., units)),
         DialogInt("blades", "Blades of grass", default=100, min=1,
                   max=250),
         DialogYesNo(
             "dWind",
             "Directional wind",
         ),
     ]
     self.width = width
     self.length = length
     self.thickness = inchesToUnits(1, units)
     self.steps = 5
예제 #6
0
 def __init__(self, width, length, ballSize, units):
     self.width = width
     self.length = length
     self.editor = [
         DialogFloat("r1",
                     "First radius",
                     units=units,
                     min=0.0,
                     max=max(width, length) * 2),
         DialogFloat("r2",
                     "Second radius",
                     units=units,
                     default=min(width, length) / 2,
                     min=0.0,
                     max=max(width, length) * 2),
         DialogFloat("turns", "Turns", default=10., min=0.1, max=100.),
         DialogFloat("angleStart",
                     "Starting angle",
                     units="degrees",
                     min=0.0,
                     max=360.0,
                     step=15.),
         DialogFloat("angleRate",
                     "Sample rate",
                     units="degrees",
                     default=15.0,
                     min=-180.0,
                     max=180.0),
         DialogFloat("base",
                     "Growth base power",
                     default=1.0,
                     min=0.25,
                     max=10.0),
         DialogYesNo("fill", "Fill in spiral"),
         DialogYesNo("fitToTable", "Fit to table"),
         DialogBreak(),
         DialogFloat("xCenter",
                     "X Center",
                     units=units,
                     default=width / 2.0),
         DialogFloat("yCenter",
                     "Y Center",
                     units=units,
                     default=length / 2.0),
     ]
예제 #7
0
 def __init__(self, width, length, ballSize, units):
     self.width = width
     self.length = length
     radius = min(width, length) / 2.0
     mRadius = max(width, length) / 2.0
     self.editor = [
         DialogFloat("petals", "Petals", default=7.0, min=0.001, max=45.0),
         DialogFloat("angleStart",
                     "Starting angle",
                     units="degrees",
                     min=-180.,
                     max=180.),
         DialogFloat("angleShift",
                     "Shift angle",
                     units="degrees",
                     default=0.0,
                     min=-10.0,
                     max=10.0),
         DialogFloat("angleRate",
                     "Sample rate",
                     units="degrees",
                     default=3.0,
                     min=1.0,
                     max=10.0),
         DialogInt("turns",
                   "Turns",
                   default=20,
                   min=1,
                   max=int(mRadius / ballSize * 4)),
         DialogYesNo("fitToTable", "Fit to table"),
         DialogBreak(),
         DialogFloat("xCenter",
                     "X Center",
                     units=units,
                     default=width / 2.0),
         DialogFloat("yCenter",
                     "Y Center",
                     units=units,
                     default=length / 2.0),
         DialogFloat("innerRadius",
                     "Inner radius",
                     units=units,
                     default=radius * .15,
                     min=0.0,
                     max=mRadius),
         DialogFloat("outerRadius",
                     "Outer radius",
                     units=units,
                     default=radius,
                     min=1.0,
                     max=mRadius),
     ]
예제 #8
0
 def __init__(self, width, length, ballSize, units):
     self.width = width
     self.length = length
     rippleSize = min(width, length) * .05
     radius = max(width, length) / 2.0
     self.editor = [
         DialogInt("rays", "Ray count", default=12, min=1, max=60),
         DialogInt("rayWidth",
                   "Ray width",
                   units="degrees",
                   default=10,
                   min=1,
                   max=60),
         DialogFloat("ripples",
                     "Number of ripples",
                     default=2.0,
                     min=0.0,
                     max=20.0),
         DialogFloat("rippleSize",
                     "Size of ripples",
                     units=units,
                     default=rippleSize,
                     min=0.,
                     max=3 * rippleSize),
         DialogYesNo("fitToTable", "Fit to table"),
         DialogBreak(),
         DialogFloat("xCenter",
                     "X Center",
                     units=units,
                     default=width / 2.0),
         DialogFloat("yCenter",
                     "Y Center",
                     units=units,
                     default=length / 2.0),
         DialogFloat("innerRadius",
                     "Inner radius",
                     units=units,
                     default=2.0,
                     min=0.0,
                     max=radius),
         DialogFloat("outerRadius",
                     "Outer radius",
                     units=units,
                     default=min(width, length) / 2,
                     min=1.0,
                     max=radius),
     ]
예제 #9
0
 def __init__(self, width, length, ballSize, units):
     self.width = width
     self.length = length
     self.editor = [
         DialogFloat("innerRadius",
                     "Inner radius",
                     units=units,
                     min=0.0,
                     max=min(width, length) / 2.),
         DialogFloat("turns", "Turns", default=5., min=1.0, max=50.0),
         DialogFloat("angleRate",
                     "Sample rate",
                     units="degrees",
                     default=11.0,
                     min=1,
                     max=45.0),
         DialogFloat("curveFactor",
                     "Curve factor",
                     default=1.,
                     min=-6.,
                     max=6.),
         DialogFloat("scaleFactor",
                     "Scale factor",
                     default=1.,
                     min=.01,
                     max=10.0),
         DialogFloat("logGrowth",
                     "Logarithmic growth",
                     units="percent",
                     default=0.,
                     min=0.,
                     max=2.),
         DialogYesNo("fitToTable", "Fit to table"),
         DialogBreak(),
         DialogFloat("xCenter",
                     "X Center",
                     units=units,
                     default=width / 2.0),
         DialogFloat("yCenter",
                     "Y Center",
                     units=units,
                     default=length / 2.0),
     ]
     self.maxRadius = 2. * sqrt(width**2 + length**2)
예제 #10
0
 def __init__(self, width, length, ballSize, units):
     self.width = width
     self.length = length
     self.editor = [
         DialogInt("points", "Points", min=3, max=75, default=5),
         DialogFloat("innerRadius1",
                     "Inner radius 1",
                     units=units,
                     default=inchesToUnits(3.0, units),
                     min=1.0,
                     max=max(width, length) / 2),
         DialogFloat("outerRadius1",
                     "Outer radius 1",
                     units=units,
                     default=min(width, length) / 2,
                     min=2.0,
                     max=max(width, length) / 2),
         DialogFloat("innerRadius2",
                     "Inner radius 2",
                     units=units,
                     default=0.0),
         DialogFloat("outerRadius2",
                     "Outer radius 2",
                     units=units,
                     default=inchesToUnits(5.0, units)),
         DialogFloat("angleStart", "Starting angle", units="degrees"),
         DialogFloat("angleShift",
                     "Shift angle",
                     units="degrees",
                     default=0.0,
                     min=0.0,
                     max=15.0),
         DialogInt("steps", "Number of stars", default=5, min=0, max=40),
         DialogYesNo("fitToTable", "Fit to table"),
         DialogBreak(),
         DialogFloat("xCenter",
                     "X Center",
                     units=units,
                     default=width / 2.0),
         DialogFloat("yCenter",
                     "Y Center",
                     units=units,
                     default=length / 2.0),
     ]
예제 #11
0
 def __init__(self, width, length, ballSize, units):
     self.editor = [
         DialogStr("expression",
                   "Expression",
                   default='cos( 3.*radians( sqrt(x*x+y*y )))',
                   length=45),
         DialogFloat("xStart", "X Start", default=-180.0),
         DialogFloat("xEnd", "X End", default=180.0),
         DialogInt("xPoints", "X Points", default=45, min=2, max=180),
         DialogFloat("yStart", "Y Start", default=-180.0),
         DialogFloat("yEnd", "Y End", default=180.0),
         DialogInt("yPoints", "Y Points", default=45, min=2, max=180),
         DialogFloat("zScale", "Z Scale", default=1.0, min=0.01, max=10.0),
         DialogFloat("xyAngle",
                     "Horizontal Rotation",
                     units="degrees",
                     default=45.0,
                     min=-45.0,
                     max=45.0),
         DialogFloat("yzAngle",
                     "Vertical Tilt",
                     units="degrees",
                     default=45.0,
                     min=0.0,
                     max=90.0),
         DialogFloat("zoom", "Zoom", default=1.0, min=0.25, max=10.0),
         DialogYesNo("topDown", "Top Down", default=True),
         DialogBreak(),
         DialogFloat("xOffset", "X Origin", units=units, default=0.0),
         DialogFloat("yOffset", "Y Origin", units=units, default=0.0),
         DialogFloat("width",
                     "Width",
                     units=units,
                     default=width,
                     min=1.0,
                     max=width * 4),
         DialogFloat("length",
                     "Length",
                     units=units,
                     default=length,
                     min=1.0,
                     max=length * 4),
     ]
예제 #12
0
 def __init__(self, width, length, ballSize, units):
     self.width = width
     self.length = length
     radius = min(width, length) / 2.0
     mRadius = max(width, length) / 2.0
     self.editor = [
         DialogInt("cwArms", "CW arms", default=12, min=1, max=120),
         DialogFloat("cwAngular",
                     "CW angular distance",
                     default=30.0,
                     units="degrees"),
         DialogInt("ccwArms", "CCW arms", default=12, min=1, max=120),
         DialogFloat("ccwAngular",
                     "CCW angular distance",
                     default=30.0,
                     units="degrees"),
         DialogInt("points", "Points per arm", default=10, min=2),
         DialogYesNo("fitToTable", "Fit to table"),
         DialogBreak(),
         DialogFloat("xCenter",
                     "X Center",
                     units=units,
                     default=width / 2.0),
         DialogFloat("yCenter",
                     "Y Center",
                     units=units,
                     default=length / 2.0),
         DialogFloat("innerRadius",
                     "Inner radius",
                     units=units,
                     default=radius * 0.15,
                     min=0.0,
                     max=mRadius),
         DialogFloat("outerRadius",
                     "Outer radius",
                     units=units,
                     default=radius,
                     min=1.0,
                     max=mRadius),
     ]
예제 #13
0
 def __init__(self, width, length, ballSize, units):
     self.width = width
     self.length = length
     self.editor = [
         DialogFloat("radius",
                     "Starting Radius",
                     units=units,
                     default=min(width, length) / 2.,
                     min=3.,
                     max=max(width, length)),
         DialogFloat("angle",
                     "Phyllotaxic Angle",
                     units="degrees",
                     default=137.51,
                     min=1,
                     max=180.0),
         DialogFloat("reductionRate",
                     "Reduction Rate",
                     default=0.976,
                     min=.85,
                     max=.99),
         DialogFloat("petalWidth",
                     "Petal Width",
                     units="degrees",
                     default=15.,
                     min=5.,
                     max=90.),
         DialogInt("iterations", "Iterations", default=100, min=1, max=500),
         DialogYesNo("round", "Rounded edges", default=False),
         DialogBreak(),
         DialogFloat("xCenter",
                     "X Center",
                     units=units,
                     default=width / 2.0),
         DialogFloat("yCenter",
                     "Y Center",
                     units=units,
                     default=length / 2.0),
     ]
예제 #14
0
 def __init__(self, width, length, ballSize, units):
     self.editor = [
         DialogInt("repetitions", "Repetitions", default=3, min=1, max=20),
         DialogFloat("heading",
                     "Initial heading",
                     units="degrees",
                     default=0.0),
         DialogFloat("angle", "Angle", units="degrees", default=90.0),
         DialogYesNo("round", "Rounded edges", default=False),
         DialogBreak(),
         DialogStr("axiom", "Axiom", length=30),
         DialogStr("rule1", "Rule 1", length=30),
         DialogStr("rule2", "Rule 2", length=30),
         DialogStr("rule3", "Rule 3", length=30),
         DialogStr("rule4", "Rule 4", length=30),
         DialogStr("rule5", "Rule 5", length=30),
         DialogStr("rule6", "Rule 6", length=30),
         DialogBreak(),
         DialogFloat("xOrigin", "X Origin", units=units, default=0.0),
         DialogFloat("yOrigin", "Y Origin", units=units, default=0.0),
         DialogFloat("width", "Width", units=units, default=width),
         DialogFloat("length", "Length", units=units, default=length),
     ]
     self.MAX_LEN = 50000
예제 #15
0
 def __init__(self, width, length, ballSize, units):
     self.width = width
     self.length = length
     radius = min(width, length) / 2.0
     mRadius = max(width, length) / 2.0
     self.editor = [
         DialogFloat("turns",
                     "Turns",
                     default=10,
                     min=1,
                     max=max(width, length) * 4),
         DialogFloat("angleStart", "Starting angle", units="degrees"),
         DialogFloat("angleRate",
                     "Sample rate",
                     units="degrees",
                     default=5.0),
         DialogFloat("base", "Growth base power", default=1.0, min=0.001),
         DialogFloats("frequencies",
                      "Wave frequency(s)",
                      units="f1,f2,...",
                      default=[6, 30],
                      min=1.0,
                      max=60.0,
                      minNums=1,
                      maxNums=3),
         DialogFloats("amplitudes",
                      "Wave amplitude(s)",
                      units="%s a1,a2,..." % units,
                      default=[1, .5],
                      min=0.1,
                      max=inchesToUnits(2.0, units),
                      minNums=1,
                      maxNums=3),
         DialogFloats("phases",
                      "Wave phase(s)",
                      units="degrees p1,p2,...",
                      default=[0, 0],
                      min=0.0,
                      max=360.0,
                      minNums=1,
                      maxNums=3,
                      rRound=0),
         DialogYesNo("fitToTable", "Fit to table"),
         DialogBreak(),
         DialogFloat("xCenter",
                     "X Center",
                     units=units,
                     default=width / 2.0),
         DialogFloat("yCenter",
                     "Y Center",
                     units=units,
                     default=length / 2.0),
         DialogFloat("innerRadius",
                     "Inner radius",
                     units=units,
                     default=radius * 0.15,
                     min=0.0,
                     max=mRadius),
         DialogFloat("outerRadius",
                     "Outer radius",
                     units=units,
                     default=radius,
                     min=1.0,
                     max=mRadius),
     ]