jjzjj

Geometry

全部标签

c# - 将一条线缩短若干像素

我正在使用.NETGDI+绘制业务对象的自定义图表。除其他外,图表由连接对象的几条线组成。在特定情况下,我需要将一条线缩短特定数量的像素,比方说10个像素,即找到位于线终点前10个像素的线上的点。想象一个半径为r=10像素的圆,以及一条起点为(x1,y1)和终点为(x2,y2)的线。圆以直线的终点为中心,如下图所示。如何计算标有红色圆圈的点,即圆与直线的交点?这将为我提供直线的新终点,将其缩短10个像素。解决方案感谢您的回答,使我能够整理出以下程序。我将其命名为LengthenLine,因为我发现如果我想要缩短线条,传递负数像素更自然。具体来说,我试图将一个可以绘制圆角线的函数放在一起

c# - C#中2个纬度/经度点之间的方向

我有2个LatLong格式的坐标。如何确定从A点(例如纽约37.149472,-95.509544)到B点(例如多伦多40.714269,-74.005973)的方向我正在寻找像“340度”这样的值在C#中 最佳答案 如果你想要一个恒定的方位跟随你不想要最短的(大圆)路径你想要一条Rhumb线MovableType脚本的转换staticdoubleDegreeBearing(doublelat1,doublelon1,doublelat2,doublelon2){vardLon=ToRad(lon2-lon1);vardPhi=Ma

c# - 找到包含其他圆圈的最小圆圈?

如果圆由其中心的X、Y和半径定义,那么如何找到包含给定数量的圆的圆?一个圆圈,它是完全包含2个或更多任意大小和位置的圆圈的最小可能圆圈。起初,我尝试通过找到中心的中点来包围2个圆,并且这是新圆的中点,而半径等于2个初始圆的半径的一半和它们中心之间距离的一半,但不知何故,它总是有点偏离。问题似乎总是找到半径的问题,但我对此很头疼,我无法让它工作。我不一定需要找到包含3个或更多圆的圆的方法。我可以找到一个包含2的圆圈,取该圆圈并用另一个圆圈包围它,然后另一个圆圈应该包含整个步骤中给出的所有圆圈。 最佳答案 给定两个圆,圆心为[x1,y1

c# - WPF:如何将 GeneralTransform 应用于几何数据并返回新几何?

有了一些几何数据和一个变换,如何将变换应用于几何以获得一个新的几何及其数据变换?例如:我有一个Path对象,它的Path.Data设置为PathGeometry对象,我想使用转换,而不是将转换应用到将在渲染时使用的PathGeometry。附言我知道Transform类有一个方法PointTransform.Transform(Pointp)可用于转换Point但是...有没有办法一次转换任意几何体?编辑:查看我对当前找到的回复solution 最佳答案 感谢ToddWhite,我找到了一种解决方案,可以将任意变换应用于路径几何形状

c# - 用多边形逼近椭圆

我正在处理地理信息,最近我需要画一个椭圆。为了与OGC约定兼容,我不能按原样使用椭圆;相反,我通过使用椭圆包含的多边形并使用任意多个点来使用多边形来近似椭圆。我用于为给定数量的点N生成椭圆的过程如下(使用C#和一个虚构的多边形类):PolygonCreateEllipsePolygon(Coordinatecenter,doubleradiusX,doubleradiusY,intnumberOfPoints){Polygonresult=newPolygon();for(inti=0;i到目前为止,这对我很有用,但我注意到它有一个问题:如果我的椭圆是“粗壮的”,即radiusX比ra

c# - 如何用半径和起止角画圆弧

如果我的Canvas元素的DataContext中有以下四个属性PointCenterdoubleRadiusdoubleStartAngledoubleEndAngle我可以在没有任何额外代码的情况下绘制弧线吗? 最佳答案 事实证明,提供自定义组件是最好的解决方案。我在我的代码中这样使用它SmallAngle当true时,将呈现点之间的小角度,而不考虑StartAngle和EndAngle的顺序。当SmallAngle为false时,弧逆时针呈现。实现是usingSystem;usingSystem.Collections.Gen

C# 操作 JSON 数据

我有一个“简单”的场景:读取一些JSON文件,过滤或更改一些值,然后在不更改原始格式的情况下写回生成的json。因此,例如要更改此内容:{"type":"FeatureCollection","crs":{"type":"EPSG","properties":{"code":28992}},"features":[{"type":"Feature","geometry":{"type":"Polygon","coordinates":[[[149886.192,374554.705],[149728.583,374473.112],[149725.476,374478.215]]]}}

c# - 检查一个点是否在旋转的矩形中(C#)

我有一个用C#(Windows窗体)编写的程序,它在图片框上绘制一些矩形。它们也可以倾斜(旋转)绘制。我知道每个矩形的起点(左上角)、它们的大小(宽度+高度)和角度。因为旋转,起点不一定是左上角,但这在这里无关紧要。然后当我点击图片框时,我需要检查我点击了哪个矩形(如果有的话)。所以我需要一些方法来检查一个点是否在矩形中,但我还需要考虑每个矩形的旋转。有人知道在C#中执行此操作的方法吗? 最佳答案 是否可以将应用于矩形的相同旋转应用到相反的点?例如,矩形A从其原点(左上角)顺时针旋转45度,然后您只需将点B绕同一原点顺时针旋转45度

javascript - 二维游戏算法来计算子弹击中目标所需的速度?

我有一个相当简单的鸟瞰2D游戏,其中塔Sprite通过向它们发射子弹来抵御来袭的移动Sprite。我的问题:如何计算子弹到达其移动目标所需的子弹速度,前提是子弹始终具有相同的定义速度?我正在使用JavaScript并拥有这些sprite变量(以及其他变量):sprite.x、sprite.y、sprite.width、sprite.height、sprite.speedX(即速度)、sprite.speedY...所以我有对象originSprite、targetSprite和bulletSprite,它们都具有这些类型的值,我需要设置正确的bulletSprite速度值。可能为了看起

javascript - 笛卡尔到极坐标

看看这里的例子:http://www.brianhare.com/physics/so.html看看我在其中使用这两个主要功能的console.log:functiondistanceBetween2pts(x1,y1,x2,y2){console.log("Particle:("+x1+","+y1+")Mouse:("+x2+","+y2+")");//PythagorasTheorem//PQ=sqrt((x2-x1)^2+(y2-y1)^2)varx=(x2-x1);vary=(y2-y1);this.radius=Math.sqrt(x*x+y*y);this.x=x;thi