public override void Generate() { for (int i = 0; i <= nbSteps; i++) { scaleSteps[i] = new ScaleStep(i, stepCents * i, 0); // no frequency } }
public override void Generate() { for (int i = 0; i < intervalRatios.Length; i++) { double cents = IntervalRatio.CentsFromRatio(intervalRatios[i]); scaleSteps[i] = new ScaleStep(i, cents, 0); } }
protected void GenerateSteps(double[] orwellCents) { Array.Sort(orwellCents); for (int i = 0; i < nbSteps; i++) { scaleSteps[i] = new ScaleStep(i, orwellCents[i], 0); } scaleSteps[nbSteps] = new ScaleStep(nbSteps, 1200, 0); }
private void ScaleText(TextFigure tf, Point pos) { if (_nowScaling == null) { _originalX = tf.X.CachedValue.AsDouble; _originalY = tf.Y.CachedValue.AsDouble; _originalW = tf.Width.CachedValue.AsDouble; _originalH = tf.Height.CachedValue.AsDouble; var snappedTo = StepManager.SnapTo(pos, tf.GetMagnets(), tf.Center); var bLenSquared = _originalW * _originalW + _originalH * _originalH; if ((snappedTo == tf.Start) && (Math.Abs(bLenSquared) > Utils.Tolerance)) { var ax = _originalX + _originalW - pos.X; var ay = _originalY + _originalH - pos.Y; _nowScaling = new ScaleTextStep(tf, ScaleTextStep.Side.End, (ax * _originalW + ay * _originalH) / bLenSquared); } else if ((snappedTo == tf.End) && (Math.Abs(bLenSquared) > Utils.Tolerance)) { var ax = pos.X - _originalX; var ay = pos.Y - _originalY; _nowScaling = new ScaleTextStep(tf, ScaleTextStep.Side.Start, (ax * _originalW + ay * _originalH) / bLenSquared); } if (_nowScaling == null) { return; } StepManager.InsertNext(_nowScaling); } else { var sts = (ScaleTextStep)_nowScaling; if (sts.ScaleAround == ScaleTextStep.Side.Start) { var bLenSquared = _originalW * _originalW + _originalH * _originalH; var ax = pos.X - _originalX; var ay = pos.Y - _originalY; sts.Scale((ax * _originalW + ay * _originalH) / bLenSquared); } else if (sts.ScaleAround == ScaleTextStep.Side.End) { var bLenSquared = _originalW * _originalW + _originalH * _originalH; var ax = _originalX + _originalW - pos.X; var ay = _originalY + _originalH - pos.Y; sts.Scale((ax * _originalW + ay * _originalH) / bLenSquared); } } }
public override void Generate() { for (int j = 0; j < 3; j++) { for (int i = 0; i < 34; i++) { scaleSteps[i + 34 * j] = new ScaleStep(i + 34 * j, stepCents * i + 1200 * j, 0); // no frequency } } }
private void ScaleEllipse(EllipseFigure ef, Point pos) { if (_nowScaling == null) { _originalW = ef.Radius1.CachedValue.AsDouble; _originalH = ef.Radius2.CachedValue.AsDouble; var snappedTo = StepManager.SnapTo(pos, ef.GetMagnets(), ef.Center); if ((snappedTo == ef.Left) && (Math.Abs(_originalW) > Utils.Tolerance)) { _nowScaling = new ScaleEllipseStep(ef, ScaleEllipseStep.Side.Right, 1 - (pos.X - _downPos.X) / _originalW); } else if ((snappedTo == ef.Right) && (Math.Abs(_originalW) > Utils.Tolerance)) { _nowScaling = new ScaleEllipseStep(ef, ScaleEllipseStep.Side.Left, 1 + (pos.X - _downPos.X) / _originalW); } else if ((snappedTo == ef.Top) && (Math.Abs(_originalH) > Utils.Tolerance)) { _nowScaling = new ScaleEllipseStep(ef, ScaleEllipseStep.Side.Bottom, 1 - (pos.Y - _downPos.Y) / _originalH); } else if ((snappedTo == ef.Bottom) && (Math.Abs(_originalH) > Utils.Tolerance)) { _nowScaling = new ScaleEllipseStep(ef, ScaleEllipseStep.Side.Top, 1 + (pos.Y - _downPos.Y) / _originalH); } if (_nowScaling == null) { return; } StepManager.InsertNext(_nowScaling); } else { var srs = (ScaleEllipseStep)_nowScaling; if (srs.ScaleAround == ScaleEllipseStep.Side.Right) { srs.Scale(1 - (pos.X - _downPos.X) / _originalW); } else if (srs.ScaleAround == ScaleEllipseStep.Side.Left) { srs.Scale(1 + (pos.X - _downPos.X) / _originalW); } else if (srs.ScaleAround == ScaleEllipseStep.Side.Top) { srs.Scale(1 + (pos.Y - _downPos.Y) / _originalH); } else if (srs.ScaleAround == ScaleEllipseStep.Side.Bottom) { srs.Scale(1 - (pos.Y - _downPos.Y) / _originalH); } } }
public override void Generate() { double a = Math.Pow(2, 1.0 / nbSteps); for (int i = 0; i <= nbSteps; i++) { double freq = refFrequency * Math.Pow(a, i); double cents = 1200.0 / nbSteps * i; scaleSteps[i] = new ScaleStep(i, cents, freq); if (OutputCents) { Console.WriteLine("{0:F2}", cents); } } }
public void GenerateFromEDO(int edoNbSteps, int generatorNbSteps) { var edoSteps = GenerateEDOSteps(edoNbSteps); double[] orwellCents = new double[nbSteps]; int genIdx = generatorNbSteps; // start here scaleSteps[0] = new ScaleStep(0, 0, 0); for (int i = 1; i < nbSteps; i++) { orwellCents[i] = edoSteps[genIdx]; // go to next generator in EDO scale genIdx = (genIdx + generatorNbSteps) % edoNbSteps; } GenerateSteps(orwellCents); }
public bool Reset() { _nowScaling = null; return(_moved); }