如何有效地存储直线(无限长,而不是线段)?
这不是如何以编程方式表示几何线?的复制,因为链接的问题是关于3D的,它没有回答这个问题中反映的主要问题。
直线的
定义:
这个问题是关于数据结构,而不是用户界面。我不关心方程是如何定义或表示的(因为我不是在制作图形计算器)。
基本上,直线是一个方程(不一定是x或y的函数),当在直角坐标系上绘制时,在任意截距(假定浮点范围没有超过)时,直线会产生无限长的任意倾角(斜率)。
因此,这些都是有效的直线方程:
y = x
y = -2x
y = x + 3
y = 4x + 5
x = 6
y = 7
它们都代表一条直线,如https://www.desmo
我们如何将Netlogo海龟的标题转换为直线方程(y = mx +c),以便可以将其与另一个直线方程进行比较(例如,表示墙的补丁)?
我需要将乌龟的航向转换为直线方程。然后将标题线方程与墙的线方程进行比较(根据墙是垂直的还是水平的,它将具有固定的x或固定的y),库中有一个截取线示例代码(我不太理解),它使用了移动线段。我想我所追求的要简单一点。也许更好的起点是我在其中一个论坛中找到的下面的代码。
to-report calculate-line [ x y angle] let m tan angle let A m let B -1 let C ( - m * x + y ) re
一个天真的解决方案是迭代每个直线方程(大约1e5个),用给定值替换'x‘,获得'y',并将这个'y’与从其他直线方程获得的'y‘进行比较。然而,如果查询数量很大(~1e5),这个解决方案无法在时间限制内完成。有没有什么有效的方法可以找到特定'x’的最小‘y’?
失败的JAVA代码:
import java.util.Scanner;
class Competitive_Programming
{
static Scanner sc = new Scanner(System.in);
static int N, M;
st
我认为这里不需要代码,但您可以看到我正在查看的内容:
public class Valuation {
//line is a monotonic (non-decreasing. Could be constant at points)
//line in 2D space where x=0 -> y=0 and x=1 -> y=1
//the gradient cannot be infinite
//line is only defined between x=0 and x=1. Can catch when arguments to
//functions ar
我希望在一个可能非常简单的问题上得到帮助。但是,在戈尔茨坦的经典力学物理教科书第三版中,作者在第2.2节“变分演算的一些技巧”中写道: Relation of a to c is a straight line 但是,这显然是直线的方程,y= ax + b, 所以,请原谅我对这个可能非常简单的代数问题缺乏了解。但是,我看不出a= c/stuff实际上是一条直线的方程。 非常感谢。