/// <summary>
        ///     Вычисление температуры двух <see cref="DataItem"/>
        /// </summary>
        /// <param name="baseDataItem">Исходный <see cref="DataItem"/></param>
        /// <param name="dataItem"><see cref="DataItem"/> для сравнения</param>
        /// <returns>Температура</returns>
        public static decimal Temperature(this DataItem baseDataItem, DataItem dataItem) {
            if (
                baseDataItem.LabelPosition == LabelPosition.Hidden ||
                dataItem.LabelPosition == LabelPosition.Hidden ||
                baseDataItem == dataItem ||
                baseDataItem.NormalizedLabelMax < dataItem.NormalizedLabelMin ||
                baseDataItem.NormalizedLabelMin > dataItem.NormalizedLabelMax
            ) {
                return 0;
            }

            return Math.Abs(baseDataItem.LabelHeight - Math.Abs(baseDataItem.NormalizedLabelMax - dataItem.NormalizedLabelMax));
        }
 /// <summary>
 ///     Определяет признак наличия коллизии двух <see cref="DataItem"/>
 /// </summary>
 /// <param name="baseDataItem">Исходный <see cref="DataItem"/></param>
 /// <param name="dataItem"><see cref="DataItem"/> для сравнения</param>
 /// <returns>Признак наличия коллизии</returns>
 public static bool IsCollision(this DataItem baseDataItem, DataItem dataItem) {
     return baseDataItem.Temperature(dataItem) != 0;
 }
Example #3
0
	    /// <summary>
	    /// 
	    /// </summary>
	    /// <param name="serianum"></param>
	    /// <param name="rownum"></param>
	    /// <param name="value"></param>
	    /// <param name="secondscale"></param>
	    public DataItem Add(int serianum, int rownum, decimal value, bool secondscale) {
            var item = new DataItem { Value = value, LabelHeight = LabelHeight, DatasetIndex = _currentDataItemIndex };
		    _currentDataItemIndex++;
            Insert(serianum, rownum, secondscale ? ScaleType.Second : ScaleType.First, item);
		    return item;
		}
Example #4
0
	    /// <summary>
	    ///     Вставка элемента данных в датасет
	    /// </summary>
	    /// <param name="serianum">Номер серии</param>
	    /// <param name="rownum">Номер ряда</param>
	    /// <param name="scaleType">Тип шкалы, к которой относится элемент данных</param>
	    /// <param name="dataItem">Элемент данных</param>
	    protected void Insert(int serianum, int rownum, ScaleType scaleType, DataItem dataItem) {
            EnsureRow(serianum, rownum, scaleType).Add(dataItem);
        }
Example #5
0
		/// <summary>
		///		Добавление элемента данных как линию тренда
		/// </summary>
		/// <param name="dataItem">Элемент данных</param>
		/// <returns>Замыкание на элемент данных</returns>
		public DataItem AddTrendLine(DataItem dataItem) {
			_trendlines.Add(dataItem);
			dataItem.IsTrendLineValue = true;
			return dataItem;
		}