zoukankan      html  css  js  c++  java
  • c# 直线插值

     /// <summary>
            /// 直线插值
            /// </summary>
            /// <param name="linePoints">点击</param>
            /// <param name="x">X插值点</param>
            /// <returns>插值的Y值</returns>
            public static double? LineInterpolation(List<PointF> linePoints, double x)
            {
                int? idx1 = null;
                for (int index = 0; index < linePoints.Count; index++)
                {
                    PointF linePoint = linePoints[index];
                    if (linePoint.X >= x)
                    {
                        idx1 = index;
                        break;
                    }
                }
    
                int? idx2 = null;
                for (int index = linePoints.Count - 1; index >= 0; index--)
                {
                    PointF linePoint = linePoints[index];
                    if (linePoint.X <= x)
                    {
                        idx2 = index;
                        break;
                    }
                }
    
                if (!idx1.HasValue || !idx2.HasValue)
                {
                    return null;
                }
    
                PointF p1 = linePoints[idx1.Value];
                PointF p2 = linePoints[idx2.Value];
    
                if (idx1.Value == idx2.Value || idx1 == idx2)
                {
                    return p1.Y;
                }
    
                double xDiff = p1.X - p2.X;
                double yDiff = p1.Y - p2.Y;
    
                double y = p1.Y + (x - p1.X) * yDiff / xDiff;
    
                return y;
            }
  • 相关阅读:
    React简介
    webpack处理项目中的资源文件
    ajax
    DOW
    webpack-css单独打包配置
    SSH配置
    html-webpack
    常用ui
    git命令备忘
    关于git的一些使用
  • 原文地址:https://www.cnblogs.com/liuxinls/p/3075943.html
Copyright © 2011-2022 走看看