private void Update(EvaluationContext context) { var value = Value.GetValue(context); var seed = Seed.GetValue(context); var period = Frequency.GetValue(context); var octaves = Octaves.GetValue(context); //var zoom = Zoom.GetValue(context); var rangeMin = RangeMin.GetValue(context); var rangeMax = RangeMax.GetValue(context); //var noiseSum = ComputePerlinNoise(value, period, octaves, seed); var noiseSum = MathUtils.PerlinNoise(value, period, octaves, seed); Result.Value = (noiseSum + 1f) * 0.5f * (rangeMax - rangeMin) + rangeMin; }
private void Update(EvaluationContext context) { var value = Value.GetValue(context); var seed = Seed.GetValue(context); var period = Frequency.GetValue(context); var octaves = Octaves.GetValue(context); var rangeMin = RangeMin.GetValue(context); var rangeMax = RangeMax.GetValue(context); var scale = Scale.GetValue(context); var scaleXYZ = ScaleXYZ.GetValue(context); Result.Value = new Vector3( (MathUtils.PerlinNoise(value, period, octaves, seed) + 1f) * 0.5f * (rangeMax.X - rangeMin.X) + rangeMin.X, (MathUtils.PerlinNoise(value, period, octaves, seed + 123) + 1f) * 0.5f * (rangeMax.Y - rangeMin.Y) + rangeMin.Y, (MathUtils.PerlinNoise(value, period, octaves, seed + 234) + 1f) * 0.5f * (rangeMax.Z - rangeMin.Z) + rangeMin.Z) * scaleXYZ * scale; }
private void UpdateRects() { Size textSize; Size valueSize; using (NativeTextRenderer NativeText = new NativeTextRenderer(CreateGraphics())) { textSize = NativeText.MeasureLogString(_showText ? Text : "", SkinManager.getLogFontByType(_fontType)); valueSize = NativeText.MeasureLogString(_showValue ? RangeMax.ToString() + _valueSuffix : "", SkinManager.getLogFontByType(_fontType)); } _valueRectangle = new Rectangle(Width - valueSize.Width - _thumbRadiusHoverPressed / 4, 0, valueSize.Width + _thumbRadiusHoverPressed / 4, Height); _textRectangle = new Rectangle(0, 0, textSize.Width + _thumbRadiusHoverPressed / 4, Height); _sliderRectangle = new Rectangle(_textRectangle.Right, 0, _valueRectangle.Left - _textRectangle.Right, _thumbRadius); _mouseX = _sliderRectangle.X + ((int)((double)_value / (double)(_rangeMax - _rangeMin) * (double)(_sliderRectangle.Width) - _thumbRadius / 2)); RecalcutlateIndicator(); }
private void Update(EvaluationContext context) { var value = OverrideTime.IsConnected ? OverrideTime.GetValue(context) : (float)context.LocalFxTime; var seed = Seed.GetValue(context); var period = Frequency.GetValue(context); var octaves = Octaves.GetValue(context); //var zoom = Zoom.GetValue(context); var rangeMin = RangeMin.GetValue(context); var rangeMax = RangeMax.GetValue(context); var scale = Scale.GetValue(context); //var noiseSum = ComputePerlinNoise(value, period, octaves, seed); var noiseSum = MathUtils.PerlinNoise(value, period, octaves, seed); var dist = rangeMax - rangeMin; Result.Value = ((scale * noiseSum + 1f) * 0.5f * dist + rangeMin); }
private void buttonText_Click(object sender, EventArgs e) { CustomDialog.KeyboardDialog kdlg = new CustomDialog.KeyboardDialog(); kdlg.ValLower = RangeMin; kdlg.ValUpper = RangeMax; kdlg.DispMode = KeyboardDialog.KB_MODE.NUMBER; //数値 string strrange = RangeMax.ToString(StringForm); int digits = strrange.IndexOf('.'); kdlg.LengthInt = (digits < 0) ? strrange.Length : digits; kdlg.LengthDec = (digits < 0) ? 0 : (strrange.Length - digits - 1); kdlg.AllLength = Math.Max(strrange.Length, RangeMin.ToString(StringForm).Length); string msgfmt = CommonProc.MessageText("G001"); msgfmt = msgfmt.Replace("%param", paramName); msgfmt = msgfmt.Replace("%min", RangeMin.ToString(StringForm)); msgfmt = msgfmt.Replace("%max", RangeMax.ToString(StringForm)); kdlg.Message_Text = msgfmt; kdlg.InputArea = _buttonText.Text; kdlg.AllowNone = allowNone; if (kdlg.ShowDialog() == DialogResult.OK) { if (allowNone && kdlg.InputArea == "") { Value = double.NaN; } else { Value = double.Parse(kdlg.InputArea); } if (ValueChanged != null) { ValueChanged(sender, e); } } kdlg.Dispose(); Invalidate(); }
protected override void OnBarUpdate() { if (BarsInProgress == 1) { return; } if (Bars.IsFirstBarOfSession) { sessionOpen = Open[0]; openTime = Time[0]; if (CurrentBars[(int)BarsUpdating.Daily] < RangePeriod) { return; } normalAtr = this.ToTickSize(raphael[0]); rangeSplit = this.ToTickSize(normalAtr / 2); renet.RecalculateSession(Time[0]); foreach (BrushSeries brush in PlotBrushes) { brush[0] = Brushes.Transparent; } } if (renet.IsRegularTradingHours(Time[0])) { DayOpen[0] = sessionOpen; // draw rectangle for first 5 minutes maybe? Help try and catch lots of volume on tick chart // e.g., -> the wider the rectangle, the more activity in the first 5 minutes. if (normalAtr > 0 && rangeSplit > 0) { RangeMax[0] = DayOpen[0] + normalAtr; RangeHigh[0] = RangeMax[0] - rangeSplit; RangeMin[0] = DayOpen[0] - normalAtr; RangeLow[0] = RangeMin[0] + rangeSplit; } if (!Bars.IsFirstBarOfSession) { return; } double weakAtr = this.ToTickSize(raphael.atrFromOpen[0]); double strongAtr = this.ToTickSize(raphael.atrFromPriorOpen[0]); double weakSplit = this.ToTickSize(weakAtr / 2); double strongSplit = this.ToTickSize(strongAtr / 2); priceZoneArray[0] = new PriceZone { Name = "Max Zone", Index = 0, ZoneHigh = RangeMax[0], ZoneLow = RangeHigh[0], StartTime = Time[0], EndTime = renet.CurrentSessionEnd(Time[0]), ZoneStrong = DayOpen[0] + strongAtr, ZoneWeak = DayOpen[0] + weakAtr, }; priceZoneArray[1] = new PriceZone { Name = "Bull Zone", Index = 1, ZoneHigh = RangeHigh[0], ZoneLow = DayOpen[0], StartTime = Time[0], EndTime = renet.CurrentSessionEnd(Time[0]), ZoneStrong = priceZoneArray[0].ZoneStrong - strongSplit, ZoneWeak = priceZoneArray[0].ZoneWeak - weakSplit, }; // there is *probably* an open zone burried in here somewhere // look at Fri Jun 17 2016... tests open - 4 ticks twice // ... could there be a weak/strong open? priceZoneArray[2] = new PriceZone { Name = "Open Zone", Index = 2, ZoneHigh = DayOpen[0], ZoneLow = DayOpen[0], StartTime = Time[0], EndTime = renet.CurrentSessionEnd(Time[0]), ZoneStrong = DayOpen[0] + (4 * TickSize), ZoneWeak = DayOpen[0] - (4 * TickSize) }; priceZoneArray[3] = new PriceZone { Name = "Bear Zone", Index = 3, ZoneHigh = DayOpen[0], ZoneLow = RangeLow[0], StartTime = Time[0], EndTime = renet.CurrentSessionEnd(Time[0]), ZoneWeak = (DayOpen[0] - weakAtr) + weakSplit, ZoneStrong = (DayOpen[0] - strongAtr) + strongSplit }; priceZoneArray[4] = new PriceZone { Name = "Min Zone", Index = 4, ZoneHigh = RangeLow[0], ZoneLow = RangeMin[0], StartTime = Time[0], EndTime = renet.CurrentSessionEnd(Time[0]), ZoneWeak = DayOpen[0] - weakAtr, ZoneStrong = DayOpen[0] - strongAtr }; } else { DayOpen.Reset(); RangeMin.Reset(); RangeMax.Reset(); RangeLow.Reset(); RangeHigh.Reset(); } priceZoneSeries[0] = priceZoneArray; }