Tag: 坐标

窗口拖动的动态余量

好的,由于缺乏回复,完全重写了问题。 我想要一个可拖动的窗口,但是当它被拖动时,改变边距以延伸到窗口的旧位置。 即窗口向右移动X,向左延伸边缘X.现在我已经遇到了一些障碍,例如窗口由于某种原因切断了边缘。 这是我的代码,让我知道你是否能发现任何东西! private void Window_LocationChanged(object sender, EventArgs e) { double TmpLeft = Math.Abs(this.Left – WinLeft); double TmpTop = Math.Abs(this.Top – WinTop); if (this.IsLoaded) {//depending on whether the window is moved left, right if (this.Left > WinLeft) {//depending on whether the window is moved up, down if (this.Top > WinTop) bdr.Margin = new Thickness(TmpLeft, […]

将纬度经度坐标转换为图像地图坐标

我几乎肯定已经回答了这个问题; 然而,由于XY坐标因其相对定义而过载,因此无法找到它。 我想要找到/想出的是如何获取纬度/经度坐标(例如12.121212,-12.323232)并进行转换,以便将它们映射到二维平面上,例如图像地图上的点。 有没有人解决过这个问题并知道他们可以指向我的脚本或其他SO问题? 理想情况下,我正在寻求JavaScript或.Net的解决方案; 但是,可以转换算法相同。

使用平移和缩放计算正确的光标位置

我现在一直在搞乱这个问题大约一个小时。 我有一个支持平移和缩放的视口,通过存储X和Y轴的偏移来处理平移。 变焦只是从0.2到14的浮动。 我的问题是我需要能够放置用户在视口中点击的东西,但是当我缩放和平移时鼠标坐标不正确。 我无法弄清楚如何正确计算鼠标坐标。 这是一张显示我目前所拥有的图片: http : //i.imgur.com/WQSXKJ2.png 如您所见,鼠标原点始终位于视口组件的左上角。 您可以在图像的左下角看到平移X和Y偏移以及缩放值。 我还添加了一个与视口左上角相关的鼠标坐标示例。 现在,因为在该图像中它当前放大了我放置的对象将被偏移。 感谢您的时间! 编辑为我的案例工作的解决方案: void Viewport_MouseClick(object sender, MouseEventArgs e){ Point mousePosition = new Point((int)((eX – Pan.X) / Zoom), (int)((eY – Pan.Y) / Zoom)); } 这会计算出正确的“屏幕空间”鼠标位置,同时考虑平移和缩放。 我通过玩TaWs答案得到了解决方案。 感谢您的帮助! 🙂

在屏幕上查找点的坐标?

问题是我有一些图形显示在一个forms,例如矩形,我想捕获当点到达thees字段。 因此,我试图找到这些矩形的corrrdinates,但由于它是forms的坐标,它与鼠标位置的坐标不匹配。 所以我想知道有没有办法在屏幕上找到一个Point在屏幕上有什么coord,而不是在窗体或控制器中?

如何从左下角到左上角更改pdf页面中文本的坐标

我正在使用PDFBOX和itextsharp dll并处理pdf。 这样我就可以得到一个矩形内文本的文本坐标。 使用itextsharp.dll提取矩形坐标。 基本上我从itextsharp.dll获取矩形坐标,其中itextsharp使用坐标系统作为左下角。 我从PDFBOX获取pdf页面文本,其中PDFBOX使用坐标系统作为左上角。 我需要帮助将坐标从左下角转换为左上角 提前致谢 更新我的问题 请原谅我,如果你理解我的问题,如果没有提供完整的信息.. 好吧,让我试着从一开始就提供更多细节。 我正在开发一个工具,我在其中获得一个PDF,其中使用评论部分中的一些绘图标记绘制一个矩形。 现在我正在使用iTextsharp读取矩形坐标 PdfDictionary pageDict = pdReader.GetPageN(page_no); PdfArray annotArray = pageDict.GetAsArray(PdfName.ANNOTS); 其中pdReader是PdfReader。 并使用PDFBOX提取页面文本及其坐标。 在哪里我有一个类创建pdfBoxTextExtraction在这我处理文本和坐标,使它返回文本和llx,lly,urx,ury “逐行”请逐行注意而不是句子明智。 所以我想提取位于Rectangle坐标内的文本。 当从itextsharp返回矩形的坐标时,我陷入困境,即llx,lly,urx,矩形的ury在左下角有一个原点,因为从PDFBOX返回的文本坐标在左上角有一个原点。然后我意识到我需要调整y轴,使原点从左下角移动到左上角。 因为我得到了页面的高度和庄稼的高度 iTextSharp.text.Rectangle mediabox = reader.GetPageSize(page_no); iTextSharp.text.Rectangle cropbox = reader.GetCropBox(page_no); 做了一些基本调整 lly = mediabox.Top – lly ury = mediabox.Top – ury 在某些情况下,调整工作,而在一些PDF需要调整cropbox lly = cropbox .Top – lly ury […]

如何从鼠标坐标获取基数鼠标方向

是否可以根据鼠标的最后位置和当前位置获取鼠标方向(左,右,上,下)? 我已经编写了代码来计算两个向量之间的角度,但我不确定它是否正确。 有人可以指出我正确的方向吗? public enum Direction { Left = 0, Right = 1, Down = 2, Up = 3 } private int lastX; private int lastY; private Direction direction; private void Form1_MouseDown(object sender, MouseEventArgs e) { lastX = eX; lastY = eY; } private void Form1_MouseMove(object sender, MouseEventArgs e) { double angle = GetAngleBetweenVectors(lastX, lastY, […]

Visio中的形状连接器

我正在使用C#在Studio 2010中为Visio 2010编写一个加载项。 我需要阅读当前在Visio中打开的图表。 我知道如何阅读图表的形状。 问题是 如果我有一个形状对象,哪些属性可以给我页面上的形状坐标和其他形状(如果有的话),当前的一个是连接的, 如果我有一个连接器对象,哪些属性可以给我连接的形状和连接的方向。

通过c#将小数点坐标转换为度,分和秒

有没有人知道简单的短代码转换它而不使用额外的库?

矩阵/坐标转换顺序

我有两个要点: Point [] original; AND Point [] transformed; 这些变换后的数组只是应用了变换的原始副本。 例: matrix.Rotate(5f); matrix.Scale(.8f, 1.1f); matrix.Translate(30f, 18f); matrix.TransformPoints(transformed); 原点已知。 转换值已知。 应用变换的顺序是未知的。 如何计算/推断变换的顺序? 编辑 只有一轮转型。 一轮可以包含至多三个转换,如下所示。 应用的唯一转换是旋转,缩放和平移的任意组合。 为了给它一些现实世界的背景,考虑使用已知兴趣点的图像。 您打印图像,扫描并尝试再次阅读。 图像包含方向标记,允许我计算扫描过程中应用的变换。 现在,蛮力方法将是: 读取扫描图像。 计算扫描图像的旋转。 在扫描图像上应用旋转。 计算旋转图像的比例。 在旋转的图像上应用比例。 计算缩放图像上的平移。 在缩放图像上应用翻译。 您现在可以使用原始点从已处理图像中读取感兴趣的点,就像没有变换一样。 当然这种方法很昂贵。 500MB图像一次需要在内存中至少有两个副本,并且必须使用图形对象进行转换。 这个问题的前提是只读取一次图像,计算所有变换并将它们应用于坐标而不是图像本身。 使用变换后的坐标来读取兴趣点。 这就是“转换顺序”问题的来源。下面有一些非常有用的答案,我希望这可以清除背景。

C#Foreach XML节点

我在XML文件上保存二维坐标,其结构类似于: 540:672 540:672 我可以打开XML文件并通过XmlTextReader读取它,但是我如何专门遍历坐标以检索初始节点和最终节点之间的时间属性和数据,格式类似于: string initial = “540:672”; string final = “540:672”; int time = 78; 新代码: 我的新代码: //Read the XML file. XDocument xmlDoc = XDocument.Load(“C:\\test.xml”); foreach (var coordinate in xmlDoc.Descendants(“coordinate”)) { this.coordinates[this.counter][0] = coordinate.Attribute(“time”).Value; this.coordinates[this.counter][1] = coordinate.Element(“initial”).Value; this.coordinates[this.counter][2] = coordinate.Element(“final”).Value; this.counter++; }; 但现在我收到这个错误: “你调用的对象是空的。” XML 540:672 540:672 … 176:605 181:617 跳过一些坐标标签以适应,但它们都有时间属性和初始/最终子标签。 全局 uint counter […]