- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在我的图像中,我有一个三角形(代表一个箭头)。此箭头定义了在同一图像中进一步搜索所考虑的方向和区域。例如,如果我有一个三角形 w.r.t x 轴旋转 30 度,它的尖端位于图像中的 (250,150) 处。我想找到并画一条垂直于三角形尖端的线,如下图所示。
在上图中,我在三角形中有蓝色线的角度,法线将绘制到该角度。三角形的尖端也是已知的,这是法线上唯一已知的点。
我的 python 函数代码如下。此代码绘制一条线,穿过尖端但不一定正常到蓝线。
def draw_intercepts(img,triangle):
tip=triangle["tip"]
x1=tip[0]
y1=tip[1]
arrow_angle=triangle["arrow_angle"]
y_intercept=int(y1+((1/np.tan(arrow_angle))*x1))
x_intercept=int(x1+(np.tan(arrow_angle)*y1))
cv2.line(img,(x_intercept,0),(0,y_intercept),[0,0,255],3,cv2.LINE_AA)
此代码是根据对这篇文章的回答编写的: https://math.stackexchange.com/questions/2381119/how-to-find-slope-x-and-y-intercepts-given-angle-to-the-normal-vector-and-a-poi
注意:我按照建议更新了代码:
def draw_intercepts(img,triangle):
tip=triangle["tip"]
x1=tip[0]
y1=tip[1]
arrow_angle=triangle["arrow_angle"]
arrow_angle_rad=np.radians(arrow_angle)
y_intercept=int(y1+((1/np.tan(arrow_angle_rad))*x1))
x_intercept=int(x1+(np.tan(arrow_angle_rad)*y1))
cv2.line(img, (x_intercept, 0), (0, y_intercept), [0, 0, 255], 3, cv2.LINE_AA)
这解决了问题。现在,当 arrow_angle 位于第一或第三象限时,线条绘制完美,例如0 < arrow_angle < 90 和 180 < arrow_angle < 270 但在第二和第四象限( 90 < arrow_angle < 180 和 270 < arrow_angle < 360)线角度未绘制为正确的角度或位置。即使我不知道它在某处画了线,因为它在图像中不可见。
最佳答案
请注意,“在截距段”中使用的线方程不是通用的 - 不适用于水平线和垂直线。对于拦截方法,情况 0、Pi/2、Pi、3*Pi/2 或 -Pi/2 必须单独处理。
如果您arrow_angle
用于蓝线:
c = -Sin(arrow_angle)
s = Cos(arrow_angle)
如果您arrow_angle
用于红线:
c = Cos(arrow_angle)
s = Sin(arrow_angle)
然后通过点画线
(x1 - c * 4096, y1 - s * 4096) and (x1 + c * 4096, y1 + s * 4096)
(我使用了与屏幕尺寸相当的任意大常数)
关于python - 画一条给定角度的线和线上的一个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45499935/
我想以 headless 模式(屏幕上根本没有 GUI)将 JPanel 绘制到 BufferedImage 中。 final JPanel panel = createPanel(); panel.
我是 Canvas 的新手,正在尝试创建看起来逼真的 float 粒子动画。 目前,我正在创建 400 个随机散布在 400x400 Canvas 上的粒子。 然后,在每个 requestAnimat
有没有办法在悬停时停止悬 float 画? :hover 这是一个显示动画的链接: https://codepen.io/youbiteme/pen/RprPrN 最佳答案 只需为您的 svg 悬停添
我想在谷歌地图上绘制覆盖图,其中除了特定点周围 1.5 公里半径以外的所有内容都被遮蔽了。为此,我尝试使用带有大量边框的圆圈,所以我会在边框中放置透明中心和覆盖颜色来实现这一点,但它无法渲染。
我正在尝试通过扩展类 UIView 来创建自定义 View ,该类可以在自定义 View 的中心显示一个圆圈。为了添加自定义绘图,我重写了 draw(_ rect: CGRect) 方法,如下所示。
我是一名优秀的程序员,十分优秀!