如何查看“半圆”曲线形态?

问题描述 投票:0回答:1

我们必须拥有一条曲线的 X 坐标和 Y 坐标的整数列表。我们必须检查半圆是向上看还是向下看。为了最好的体验

我尝试用这样的原理来检查这一点 在代码中是

 if (Array.IndexOf(listY1, listY1.Max()) != 0 & Array.IndexOf(listY1, listY1.Max()) != listX1.Length - 1)
 {
///some code
return;

}


 if (Array.IndexOf(listY1, listY1.Min()) != 0 & Array.IndexOf(listY1, listY1.Min()) != listX1.Length - 1)
 {
///some code
}

是的,代码可以用另一种方式编写,但它会有相同的想法

问题是现在所有曲线由于某种原因都会经过第一次检查。帮助 plis 改进它:з 我正在用 Zgraph 调试程序,情况是

c# algorithm geometry
1个回答
0
投票

我不清楚“向上看”或“向下看”是什么意思 - 是否有可能有一个“向右看”的弧线? 我建议计算弧中心的坐标,然后由

x1, y1
x2, y2
x3, y3
cx, cy
决定 其中弧“面向”(上、下、左、右...)

var z1 = x1 * x1 + y1 * y1;
var z2 = x2 * x2 + y2 * y2;
var z3 = x3 * x3 + y3 * y3;

var zx = (y2 - y3) * z1 + (y3 - y1) * z2 + (y1 - y2) * z3;
var zy = (x2 - x3) * z1 + (x3 - x1) * z2 + (x1 - x2) * z3;
var dz = 2 * ((x1 - x2) * (y3 - y1) - (y1 - y2) * (x3 - x1));

var cx = -zx / dz;
var cy = zy / dz;
© www.soinside.com 2019 - 2024. All rights reserved.