我的任务是开发一种算法,将不同类型的曲线拟合到二维空间中的给定点序列上.
为了能够测试我的算法,我选择了SVG来显示结果.我有几个问题.
由于我的算法可能有非常不同的输入和输出,因此我必须能够放大查看生成的SVG文件!
但是SVG中的路径只能以一定的宽度显示.如果我放大,那么路径的宽度会变宽.我希望宽度在所有缩放级别为例如1像素.这有解决方案吗?
另外:SVG可以显示点吗?是的,简单,原始点.我发现它不能.
谢谢
有没有人知道在一个点的给定距离内获取MySQL数据库中的所有多边形的方法?实际距离并不重要,因为它是为以后找到的每个多边形计算的,但对于"接近"的多边形进行计算将是一个巨大的优化.
我看过MBR并且包含函数,但问题是一些多边形不包含在点周围绘制的边界框内,因为它们非常大,但是它们的一些顶点仍然很接近.
有什么建议?
嗨,我想知道是否有任何有效的方法来计算点的坐标(从它的原始位置移动距离d).
假设我有一个点P(0.3,0.5),我需要随距离d移动该点随机方向.
到目前为止,我通过随机选择新的x和y坐标来做到这一点,我正在检查新旧点之间的距离是否等于d.我确实意识到这样做不太有效.你会怎么做?
在我不得不对它进行编程之前,一切看起来都那么简单明了.
我得到了什么
我上传了一张图片来更好地解释它.
我有一个圆圈,我知道
当我旋转灰色圆圈图像时,我希望能够用10度计算红色按钮的新坐标(x1y1,x2y2).
对于那些懂数学的人来说,这应该不难实现,但我找不到合适的解决方案.我也在这里搜索过,找不到合适的解决方案.任何帮助是极大的赞赏.谢谢

正如Felice所述,工作解决方案是:
- 首先注意旋转角度,每次重绘只需增加它
angle = angle+mainRotationAngle;
float x = (float) (center.X + Math.cos(angle*Math.PI / 180F) * radius
float y = (float) (center.Y + Math.sin(angle*Math.PI / 180F) * radius
button.setX(x);
button.setY(y);
Run Code Online (Sandbox Code Playgroud) 我正在研究一个项目,我有一个点特征 - 点特征包括142个点 - 和多个多边形(大约10个).我想计算R中每个单点和最近的面要素之间的距离.
我目前的方法很乏味,有点长.我目前正计划计算每个单点和每个多边形之间的距离.例如,我将计算142点和多边形A之间的距离,142点和多边形B之间的距离,142点和多边形C之间的距离等.以下是这些距离计算之一的示例代码:
dist_cen_polya <- dist2Line(centroids_coor, polygonA_shp)
Run Code Online (Sandbox Code Playgroud)
在进行这些计算之后,我会编写一个代码来选择每个单点和最近的多边形之间的最小/最近距离.问题是这个程序很乏味.
有没有人知道最小化计算工作量/计算时间的包/代码?我真的想使用一个比较单个的包来指向最近的面要素或计算一个点和所有感兴趣的多边形之间的距离?
谢谢.
我正在使用gnuplot来分析数据.
我经常使用调色板和矩阵.
但是每当我使用它时,精度总是有问题的.
如果我通过定义许多颜色来提高精度,则很难记住和阅读.
如果我减少颜色数量以清除比较,精度会降低.
所以我在考虑使用情节编号的矩阵.

如果我可以显示颜色和数字,则更容易查看和分析.
至少我想只显示数字,(只使用excel是一个选择,但我不想)
或显示不同颜色的数字.(颜色由点值决定)
如果您知道该怎么做,请告诉我.
如果您无法理解,请告诉我.
先感谢您,
我有一个包含很多多边形的地图,其中一个有一个点,如下所示:

多边形边缘的x和y坐标保存在这样的数据库中(例如):
Polygon(Point(11824, 10756), Point(11822, 10618), Point(11912, 10517), Point(12060, 10529), Point(12158, 10604), Point(12133, 10713), Point(12027, 10812), Point(11902, 10902)),
Polygon(Point(11077, 13610), Point(10949, 13642), Point(10828, 13584), Point(10772, 13480), Point(10756, 13353), Point(10849, 13256), Point(10976, 13224), Point(11103, 13294), Point(11171, 13414), Point(11135, 13558)),
Polygon(Point(11051.801757813, 11373.985351563), Point(11165.717773438, 11275.469726563), Point(11281.733398438, 11255.646484375), Point(11381.07421875, 11333.15625), Point(11440.202148438, 11467.706054688), Point(11404.73046875, 11584.534179688), Point(11301.662109375, 11643.852539063), Point(11169.486328125, 11644.079101563), Point(11067.555664063, 11579.676757813), Point(11018.21484375, 11454.750976563)),
Polygon(Point(12145, 13013), Point(12069.065429688, 13014.67578125), Point(12012.672851563, 12953.833984375), Point(11973.942382813, 12910.14453125), Point(11958.610351563, 12853.736328125), Point(11988.58203125, 12780.668945313), Point(12046.806640625, 12735.046875), Point(12117.080078125, 12729.838867188), Point(12185.567382813, 12743.389648438), Point(12225.575195313, 12803.530273438), Point(12255.934570313, 12859.2109375), …Run Code Online (Sandbox Code Playgroud) 我有一个功能可以画出Bezier Curve三点.我已经有2点(开始和结束) - A和B.我如何计算这两点之间的中点,因为中点总是比这两点的线性函数略高或低一点.
示例:

任何公式,想法都会很棒!
在我尝试练习朱莉娅时,我制作了一个绘制分叉图的程序.我的代码如下:
function bifur(x0,y0,a=1.3,b=0.4,n=1000,m=10000)
i,x,y=1,x0,y0
while i < n && abs(x) < m
x,y = a - x^2 + y, b * x
i += 1
end
if abs(x) < m
return x
else
return 1000
end
end
la = Float64[];
lx = Float64[];
for a=0:400
for j = 1:1000
x0 = rand()
y0 = rand()
x = bifur(x0,y0,a/100)
if x != 1000
push!(la,a/100)
push!(lx,x)
end
end
end
using Gadfly
myplot = Gadfly.plot( x=la, y=lx , Scale.x_discrete, Scale.y_continuous, Geom.point)
draw(PNG("myplot.png",10inch,8inch),myplot)
Run Code Online (Sandbox Code Playgroud)
我得到的输出是这个图像: …
似乎没有办法计算线路交叉使用boost::geometry,但我想知道在C++中最常用的方法是什么?
我需要2D中两条无限线的交集算法,如果它更快,它可以是两个不同的函数,如:
bool line_intersection(line,line);
point line_intersetion(line,line);
Run Code Online (Sandbox Code Playgroud)
PS我真的试图避免轮子发明,所以倾向于使用一些库.