我在窗口中绘制一条线,并让用户拖动它。 所以,我的线由两个点定义:(x1,y1)和(x2,y2)。 但现在我想在我的线的末端画“帽子”,就是说,在我的每一个端点上都有短垂线。 帽应该是N个像素的长度。 因此,为了在终点(x1,y1)绘制我的“帽”线,我需要find两个点形成一个垂直线,并且每个点都离开点(x1,y1)N / 2个像素。 那么,如果你需要在一个已知线的终点(x1,y1)的一个垂直距离N / 2处(即由(x1,y1)和(x2,y2)?
我想这是一个简单的问题,但我得到一些奇怪的结果与我目前的代码,我没有math背景,以充分理解为什么。 我的目标很简单,正如标题所说:我只想从中心点以一定的距离和angular度find点。 我目前的代码: Point centerPoint = new Point ( 0, 0 ); Point result = new Point ( 0, 0 ); double angle = 0.5; //between 0 and 2 * PI, angle is in radians int distance = 1000; result.Y = centerPoint.Y + (int)Math.Round( distance * Math.Sin( angle ) ); result.X = centerPoint.X + (int)Math.Round( […]
我想计算具有三angular形表面的三维网格物体的体积。
我不太明白的方法convertPoint:toView: 在苹果的文档中写道 convertPoint:toView: 将接收器坐标系中的点转换为指定视图的点。 – (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view 但是,从一个到另一个的转换实际上是什么意思呢? 这是否意味着这两个边界的点有不同的单位 ? 或只是不同的价值观? 如果是后者,为什么有这样一种方法,当我们可以简单地将a的contentOffset的值赋给b的时候呢? CGPoint a = [a contentOffset]; [b setContentOffset:a]; convertPoint:toView:与简单分配contentOffset什么不同? 还是我误解了整个概念? 转换点实际上是做什么的? 何时应该使用这种方法?
给定一个矩形扭曲的二维图片: 我知道这个形状最初是一个矩形,但我不知道它的原始大小。 如果我知道这幅图中angular点的像素坐标,我怎样才能计算出原来的比例,即矩形的商(宽度/高度)? (背景:目标是自动不失真矩形文件的照片,边缘检测可能会做hough变换) 更新: 有一些讨论是否可以根据给出的信息来确定宽高比。 我的天真的想法是,这一定是可能的,因为我想不出一个1:4矩形投影到上面描述的四边形的方法。 这个比例显然接近1:1,所以应该有一种方法来确定它的math。 然而我没有证据certificate这超出了我的直觉猜测。 我还没有完全理解下面提出的论点,但是我认为我们必须有一个隐含的假设,就是我们在这里失踪了,这个假设是不同的。 但经过几个小时的search,我终于find了一些与这个问题有关的文件。 我正努力去理解那里使用的math,迄今为止没有成功。 特别是第一篇论文似乎正在讨论我想要做的事情,不幸的是没有代码例子和非常密集的math。 张正友,何立伟,“白板扫描与图像增强” http://research.microsoft.com/en-us/um/people/zhang/papers/tr03-39.pdf p.11 “由于透视变形,矩形的图像看起来像是一个四边形,但是由于我们知道它是一个空间上的矩形,所以我们能够估计出摄像机的焦距和矩形的高宽比。 ROBERT M. HARALICK“从矩形透视投影确定相机参数” http://portal.acm.org/citation.cfm?id=87146 “我们展示了如何在3D空间中使用未知大小和位置的矩形的2D透视投影来确定相对于矩形平面的摄像机视angular参数。
我如何计算两个圆的交点。 我希望在所有情况下都有两个,一个或没有交点。 我有中心点的x和y坐标,以及每个圆的半径。 在python中的答案是首选,但任何工作algorithm是可以接受的。
我需要的是两个vectorVa和Vb之间的符号旋转angular度,这两个vector位于相同的3D平面内并具有相同的原点,因此知道: 包含两个vector的平面是任意的,并不平行于XY或任何其他的基本平面 Vn – 是一个正常的飞机 两个vector与法线都具有相同的原点O = {0,0,0} Va – 是测量Vn左旋的参考 angular度应该这样测量,所以如果平面是XY平面,Va将代表X轴单位vector。 我想我应该用Va作为X轴,Vb和Vn的叉积作为Y轴进行一种坐标空间变换,然后像atan2()那样使用一些2d方法。 有任何想法吗? 公式?
我正在试图找出如何最好地定位覆盖在单位球面上的任意形状的质心,input顺序(顺时针或反cw)顶点的形状边界。 顶点的密度沿着边界是不规则的,所以它们之间的弧长一般是不相等的。 由于形状可能非常大(半个半球),所以通常不可能简单地将顶点投影到平面上,并使用平面方法,详见维基百科(对不起,我不允许超过2个超链接作为新手)。 稍微好一点的方法是使用在球坐标系中操作的平面几何graphics,但是如果使用大的多边形,这种方法也会失败,正如这里很好地说明的那样。 在同一页上,“Cffk”突出介绍了一种计算球形三angular形质心的方法。 我试图实现这个方法,但没有成功,我希望有人可以发现这个问题? 我已经将variables的定义与文件中的类似,以便于比较。 input(数据)是经度/纬度坐标列表,由代码转换为[x,y,z]坐标。 对于每个三angular形,我已经任意固定一个点作为+ z极点,其他两个顶点由沿着多边形边界的一对相邻点组成。 代码沿边界步进(从任意点开始),依次使用多边形的每个边界段作为三angular形边。 为每个这些单独的球形三angular形确定一个子质心,并根据三angular形面积对它们进行加权,并将其相加以计算总的多边形质心。 运行代码时我没有遇到任何错误,但返回的总质心显然是错误的(我已经运行了质心位置明确的一些非常基本的形状)。 我还没有find任何明智的模式,在重心的位置返回…所以目前我不知道什么是错误的,无论是在math或代码(虽然,怀疑是math)。 下面的代码应该工作原样复制粘贴,如果你想尝试。 如果你已经安装了matplotlib和numpy,它会绘制结果(如果你不这样做,它将忽略绘图)。 您只需要将代码下方的经度/纬度数据放入一个名为example.txt的文本文件中即可。 from math import * try: import matplotlib as mpl import matplotlib.pyplot from mpl_toolkits.mplot3d import Axes3D import numpy plotting_enabled = True except ImportError: plotting_enabled = False def sph_car(point): if len(point) == 2: point.append(1.0) rlon = radians(float(point[0])) rlat = radians(float(point[1])) […]
这是我前段时间在面试时被问到的一个问题。 而我仍然无法弄清楚明智的答案。 问题是: 你有一组点(x,y)。 find2个最远的点。 彼此遥远。 例如,对于点(0,0),(1,1),(-8,5) – 最远的是:(1,1)和(-8,5),因为它们之间的距离大于(0,0) – (1,1)和(0,0) – ( – 8,5)。 显而易见的方法是计算所有点之间的所有距离,并find最大值。 问题在于它是O(n ^ 2),这对于大型数据集来说过于昂贵。 对边界上的第一个跟踪点有一个方法,然后计算它们的距离,前提是边界上的点比“内部”要less,但是它仍然很昂贵,在最坏的情况下会失败。 试图searchnetworking,但没有find明智的答案 – 虽然这可能只是我缺乏search技能。
我在屏幕空间中有4个2D点,我需要将它们反向投影到3D空间。 我知道4个点中的每一个都是3D旋转的刚性矩形的一个angular,我知道矩形的大小。 我怎样才能从这个3D坐标? 我没有使用任何特定的API,也没有现有的投影matrix。 我只是寻找基本的math来做到这一点。 当然,没有足够的数据将单个2D点转换为3D,而没有其他参考,但是我想如果你有4个点,你就知道它们在同一个平面上彼此成直angular,你知道他们之间的距离,你应该能够从那里弄清楚。 不幸的是我不能很好的解决问题。 这可能属于摄影测量的范围之内,但谷歌search没有让我得到任何有用的信息。