Geometry 适用于更大线路的新型跳线
我有一个类表示二维空间上的线:Geometry 适用于更大线路的新型跳线,geometry,Geometry,我有一个类表示二维空间上的线: class Line { Point start; Point end; Float length; // calculated property, something like sqrt(pow(end.x - start.x, 2) + pow(end.y - start.y, 2)) } 我想要一种方法,使线从中心变大 例如,如果我创建一些与X平行的图形: Point start = Point(1, 3) Point end = Po
class Line {
Point start;
Point end;
Float length; // calculated property, something like sqrt(pow(end.x - start.x, 2) + pow(end.y - start.y, 2))
}
我想要一种方法,使线从中心变大
例如,如果我创建一些与X平行的图形:
Point start = Point(1, 3)
Point end = Point(1, 10)
Line newLine = Line(start, end) // newLine.length here is 7
然后调用方法makebiger:
我希望接收新行或修改旧行的start/end属性,使其start=1,1/end=1,12,使其长度变为11
请注意,我也想考虑角度。 据我所知,MaigBigGeRe4比你想把长度增加4。所以使用简单的比例
newlength = length + increasevalue
dx = (end.x - start.x) / 2
mx = (end.x + start.x) / 2
newstart.x = mx - dx * newlength / length
newend.x = mx + dx * newlength / length
and similar for y
newlength = length + increasevalue
dx = (end.x - start.x) / 2
mx = (end.x + start.x) / 2
newstart.x = mx - dx * newlength / length
newend.x = mx + dx * newlength / length
and similar for y