当前位置:   article > 正文

对两个 xyz 坐标文件进行线性插值的程序_excel xyz数据,输入xy插值z

excel xyz数据,输入xy插值z

此代码用于对两个 xyz 坐标文件(即 C  0.0  0.1  0.2 这种形式的)进行线性插值。对于几何构型优化问题,如果很难得到最优结构,则可以使用目标结构的两个相邻结构进行线性插值,从而得到最优结构的较好的初始猜测。

程序总共有三个代码文件组成。类的实现没有写成单独的文件。程序会输出 Geom_#.xyz 这样一系列插值结构文件。

---------- DispVec.h ----------

  1. /*
  2. * Displacement vector definition
  3. */
  4. #ifndef DISPLACEMENT_VECTOR_H
  5. #define DISPLACEMENT_VECTOR_H
  6. #include <iostream>
  7. #include <stdexcept>
  8. #include <iomanip>
  9. class DispVec
  10. {
  11. public:
  12. DispVec() {}
  13. DispVec(double x, double y, double z)
  14. {
  15. X = x;
  16. Y = y;
  17. Z = z;
  18. }
  19. DispVec(const DispVec& rhs)
  20. {
  21. X = rhs.X;
  22. Y = rhs.Y;
  23. Z = rhs.Z;
  24. }
  25. DispVec& operator=(const DispVec& rhs)
  26. {
  27. if(this != &rhs)
  28. {
  29. X = rhs.X;
  30. Y = rhs.Y;
  31. Z = rhs.Z;
  32. }
  33. return *this;
  34. }
  35. friend DispVec operator-(const DispVec& lhs, const DispVec& rhs)
  36. {
  37. DispVec result;
  38. result.X = lhs.X - rhs.X;
  39. result.Y = lhs.Y - rhs.Y;
  40. result.Z = lhs.Z - rhs.Z;
  41. return result;
  42. }
  43. friend DispVec operator+(const DispVec& lhs, const DispVec& rhs)
  44. {
  45. DispVec result;
  46. result.X = lhs.X + rhs.X;
  47. result.Y = lhs.Y + rhs.Y;
  48. result.Z = lhs.Z + rhs.Z;
  49. return result;
  50. }
  51. DispVec& operator+=(const DispVec& rhs)
  52. {
  53. X += rhs.X;
  54. Y += rhs.Y;
  55. Z += rhs.Z;
  56. return *this;
  57. }
  58. DispVec& operator-=(const DispVec& rhs)
  59. {
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/545302
推荐阅读
相关标签
  

闽ICP备14008679号