【问题标题】:invert a curve by his x axis通过他的 x 轴反转曲线
【发布时间】:2012-12-19 13:00:32
【问题描述】:

在java中按x轴旋转曲线的公式是什么?

【问题讨论】:

  • C++ 还是 Java?绕 x 轴或 y 轴旋转?您显示的内容围绕 y 轴翻转...
  • 你的曲线是什么形式的?一个公式?一个y值数组? x-y 对的表?
  • 我有两个数组:pointsX 和 pointsY
  • 我投票结束这个问题,因为它要求一个数学公式;严格来说不是一个编程问题。

标签: c++ formula curve


【解决方案1】:

假设您将曲线作为一个点数组,这里类似于伪代码:

Point[] curve;

double x_max = curve[0].x, x_min = curve[0].x;
for( point : curve) {
  x_max = max(x_max, point.x);
  x_min = max(x_min, point.x);
}

for (point : curve) {
  point.x = x_max - point.x + x_min;
}

它是如何工作的?事实上,我尝试镜像曲线的归一化坐标 - 如果它们从 x = 0 开始(公式为 point.x - x_min)然后你从 x_max 中减去结果,那么这些点将具有的坐标现在曲线被定义为从右到左而不是从左到右。

【讨论】:

  • 谢谢。我没有使用向量,只有两个数组 pointsX 和 pointsY。 “max”只是两个值的最大值?
  • 没有 max 是 PointX 数组中的最大值。 x_min 是 PointY 数组中的最小值。点的 Y 坐标应保持不变。
  • 我已经修改了你的代码,但是当我在曲线中有两个以上的断点时,它给了我奇怪的结果。请参阅我的原始帖子。谢谢!
  • @menemenemu x_min 再次取决于 x 坐标而不是 y 值!正如我在上面的评论中提到的,y 应该保持不变,所以你不应该在计算中使用它。试着理解其中的逻辑,我的意思应该会很清楚。
【解决方案2】:

很难知道这与 C++ 或 Java 有什么关系,但从数学上讲,如果您有一个要沿 x 轴翻转的函数 f(x),您只需执行 f(-x)

【讨论】:

  • Err,那宁愿-f(x)绕x轴翻转,f(-x)绕y轴翻转
  • @AlexisPigeon“沿”x轴翻转
猜你喜欢
  • 1970-01-01
  • 2021-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-22
  • 1970-01-01
  • 2022-11-30
相关资源
最近更新 更多