首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Python基础、进阶与实战

    Pygame基础5-Surface & Rect

    5-Surface & Rect Pygame显示和处理图像的基础分别是Surface和Rect(Rectangle)。 Rect原理 Rectangle:矩形 我们想要操作Surface时,需要使用Rect(矩形)。 Rect是一个矩形区域,可以借助Rect控制Surface的位置。 Rect surface.get_rect()会返回一个和surface形状一样的矩形,默认位置在(0,0)(即屏幕的左上角)。 screen.blit(kitten, kitten_rect) # 将ketten放在 rect位置。 kitten_rect.x += 1 # 修改rect的位置 向右偏移一个像素。 下面我们通过Rect来移动Surface。 Rect案例 放置两个surface,并通过改变Rect移动其中的一个surface。

    51910编辑于 2024-04-11
  • 来自专栏HarmonyOS点石成金

    鸿蒙开发:使用Rect绘制矩形

    Rect().width(100) .height(100)效果如下:通过fill属性设置填充颜色,通过stroke属性设置边框颜色。 设置背景颜色为粉色:Rect().width(100) .height(100) .fill(Color.Pink)效果如下:边框矩形绘制边框需要注意一点,那就是不能仅设置stroke (0) .stroke(Color.Pink) .strokeWidth(1)效果如下:圆角矩形实现一个圆角效果,可以通过radius属性,比如实现一个,圆角度数为10的矩形: Rect Rect() .width(100) .height(100) .fill(Color.Pink) .radius([[10,10 组件,但是,如果有需要用到矩形的场景,建议还是使用Rect组件,因为Rect组件自身携带了很多样式属性,可以满足我们日常的不同的需求。

    64910编辑于 2025-03-31
  • 来自专栏计算机视觉理论及其实现

    cv2.rotatedRectangleIntersection(rect1, rect2)与最小外接矩形cv2.minAreaRect(box)

    求两个带角度矩形的 交集,后续可以 计算iou参数定义:rect 矩形的 x,y w h ,theta这里的角度定义 逆时针为负,顺时针为正 rect1 = ((50,50), (100,100), 0 ) # x,y w,hrect2 = ((90,100), (50,2), 60)r1 = cv2.rotatedRectangleIntersection(rect1, rect2) # 区分正负角度 为轴,逆时针旋转碰到的第一条边定义为 w,另一个边为h,旋转的角度为theta具体算法不做讲解(我也不会)box = np.array([[0,100],[0,0],[50,0],[50,100],])rect3 = cv2.minAreaRect(box)print(rect3)box = np.array([[29,167], [493,167],[511,404], [9,404]]) # # 原始的角度 0.0# # [400,404], [50,404]])rect3 = cv2.minAreaRect(box)print(rect3)

    2.7K10编辑于 2022-09-02
  • 来自专栏计算机图形学 前端可视化 WebGL

    判断两个矩形是否相交(Rect Intersection)

    假设矩形的的定义如下: class Rect { constructor(x,y,w,h) { this.x = x; this.y = y; this.w

    85120编辑于 2023-07-09
  • 来自专栏iOS开发~

    iOS_convert point or rect 坐标和布局转换+判断

    25810编辑于 2024-03-28
  • 来自专栏林德熙的博客

    dotnet OpenXML SDK 形状的 rect Shape Text Rectangle 属性对文本框的坐标影响

    在 Office 里面,对于形状,可以通过 a:rect 指定文本框的坐标 在 PPT 里面,有文档里面存在自定义形状大概如下 <p:sp> <p:nvSpPr> <! <a:custGeom> <a:avLst /> <a:gdLst/> <a:ahLst /> <a:rect </a:r> </a:p> </p:txBody> </p:sp> 请问此时的文本的左上角坐标是什么 如下图,在形状里面的文本会先通过形状的 a:rect 在 OpenXML 里面,根据 ECMA 376 的 20.1.9.22 文档内容,形状的 a:rect 决定文本框的外框的矩形范围。 Inset) 和 rIns (Right Inset) 和 bIns (Bottom Inset) 和 tIns (Top Inset) 决定文本在文本框里面的边距 因此文本在形状里面会受到 a:rect

    81220发布于 2021-02-04
  • 来自专栏拂晓风起

    【HTML5 Canvas】计算元件显示对象经过Matrix变换后在上级舞台上的bounds(边界矩形rect

    句,就可以算出: var matrix = new Matrix2D(); matrix.rotate(-60*Math.PI/180); 回到正题,先把Matrix和rect return new Rectangle(minX, minY, maxX - minX, maxY - minY); }; 这里做了一个变化,如果bounds(也就是边框Rect )有x/y偏移,就把这个偏移转加到Matrix上,把rect简化为(0,0,width,height),这样有利于简化计算。 其实,由于rect的x、y被简化为0,那么上述算法还可以优化,把函数拆开。最终变成: p.

    98630发布于 2018-07-03
  • 来自专栏林德熙的博客

    win10 uwp 求两个矩形相连的几何

    也就是两个矩形中,满足下面公式,其中 rect1 和 rect2 的值可以互换 rect1.Left <= rect2.Left && rect1.Top <= rect2.Top 此时就可以认为两个矩形按照从左上角到右下角的坐标 于是连接 rect1 的左上角点 rect1 的右上角点 rect2 的右上角点 rect2 的右下角点 rect2 的左下角点 rect1 的左下角点就可以连接处理这个六边形或矩形 另一个是两个矩形是按照从左下角到右上角的坐标 .Left && rect1.Bottom >= rect2.Bottom 通过连接 rect1 的左上角 rect2 的左上角 rect2 的右上角 rect2 的右下角 rect1 的右下角 rect1 rect1 = new Rect(50, 50, 10, 10); Rect rect2 = new Rect(_move, new Size(10, 10)); 可以看到矩形 , rect2, ds); } else if (rect2.Left < rect1.Left && rect2.Top < rect1

    62820发布于 2019-03-13
  • 来自专栏c#Winform自定义控件系列

    (五十一)c#Winform自定义控件-文字提示

    path.AddLine(rect.Left + rect.Width / 2, rect.Y - 19, rect.Left + rect.Width / 2 + 10, rect.Y);//上 76 path.AddLine(rect.Right + 19, rect.Y + rect.Height / 2, rect.Right, rect.Y + rect.Height / 2 + 10);// path.AddLine(rect.Left + rect.Width / 2 + 10, rect.Bottom, rect.Left + rect.Width / 2, rect.Bottom + path.AddLine(rect.Left - 19, rect.Y + rect.Height / 2, rect.Left, rect.Y + rect.Height / 2 + 10);//左 path.AddLine(rect.Right + 19, rect.Y + rect.Height / 2, rect.Right, rect.Y + rect.Height / 2 + 10);//

    1.4K20发布于 2019-09-09
  • 来自专栏章鱼的慢慢技术路

    MFC绘图小实验(1)

    ->SetWindowExt(rect.Width(),rect.Height()); //设置窗口 pDC->SetViewportExt(rect.Width(),-rect.Height pDC->SetWindowExt(rect.Width(),rect.Height()); //设置窗口 pDC->SetViewportExt(rect.Width(),-rect.Height pDC->SetWindowExt(rect.Width(),rect.Height()); //设置窗口 pDC->SetViewportExt(rect.Width(),-rect.Height rect.OffsetRect(-rect.Width()/2,-rect.Height()/2); //客户区矩形校正 rect.DeflateRect(100,100); / rect.OffsetRect(-rect.Width()/2,-rect.Height()/2); //客户区矩形校正 rect.OffsetRect(rect.Width()/

    2K61发布于 2018-06-04
  • 来自专栏Python基础、进阶与实战

    Pygame基础8-碰撞

    结合矩形位置判断碰撞方向 案例 一个矩形(和边框的碰撞) # rect1 rect1 = pygame.Rect(100, 100, 50, 50) color1 = (255, 255, 255) speed rect1.y += speed_1_y # rect 和边界的碰撞: if rect1.left <= 0 and speed_1_x <0: speed_1_x * speed_1_y *= -1 pygame.draw.rect(screen, color1, rect1) # 在主循环中调用 update_rect() while True: rect2.y += speed_2_y # rect 和边界的碰撞: ... _1_x rect1.y += speed_1_y #rect2.x += speed_2_x rect2.y += speed_2_y # rect 和边界的碰撞:

    43900编辑于 2024-04-11
  • 来自专栏深度学习和计算机视觉

    用Python实现坦克大战游戏 | 干货贴

    ) if not is_dual_mode: tank_rect.right, tank_rect.top = player_rect.left-10, player_rect.top (players_render_white, players_rect) else: tank_rect.right, tank_rect.top = players_rect.left , True, color_white) font_rect = font_render.get_rect() font_rect.centerx, font_rect.centery = cfg.WIDTH = tank_cursor.get_rect() tank_rect.left = gamebar_rect.left tank_rect.centery = gamebar_rect.centery , tank_rect) pygame.draw.rect(screen, color_gray, (gamebar_rect.left+8, gamebar_rect.top+8, tank_rect.left-gamebar_rect.left

    1.5K43发布于 2020-10-26
  • 来自专栏叶子陪你玩编程

    pygame游戏精灵(上)-碰撞检测

    属性,同时赋值为一个rect元组 hat.rect = hat.image.get_rect() # 渲染 hat到屏幕上 screen.blit(hat.image, hat.rect) 糖果精灵 # 属性,同时赋值为一个rect元组 candy.rect = candy.image.get_rect() # 渲染 candy 到屏幕上 screen.blit(candy.image,candy.rect candy.rect = candy.image.get_rect() candy.rect = candy.rect.move(400,400) clock = pygame.time.Clock( candy.rect = candy.image.get_rect() candy.rect = candy.rect.move(400,400) clock = pygame.time.Clock( candy.rect = candy.image.get_rect() candy.rect = candy.rect.move(400,400) clock = pygame.time.Clock(

    2.7K31发布于 2021-10-11
  • 来自专栏Some studies in imgs

    Search for the filling range based on the sliding window

    block_rect = opt_block.block_rect;cv::Mat optblock_area = gray(block_rect);publicImgTools::show_img( ;cv::Mat opt_area = gray(opt_round_rect);publicImgTools::show_img(opt_area);cv::Rect target_rect;for (auto rect : ques_block.opt_rects){cv::Rect expand_rect(rect.x - 10, rect.y - 5, rect.width + 20, rect.height - 1; col++){cv::Rect y_aim_range = cv::Rect(max_x, col, rect.width, rect.height);/*Mat temp;cv::cvtColor = expand_rect.y + max_y;target_rect.width = rect.width;target_rect.height = rect.height;cv::rectangle

    11910编辑于 2025-10-17
  • 来自专栏AI科技大本营的专栏

    用Python实现坦克大战游戏 | 干货贴

    ) if not is_dual_mode: tank_rect.right, tank_rect.top = player_rect.left-10, player_rect.top (players_render_white, players_rect) else: tank_rect.right, tank_rect.top = players_rect.left , True, color_white) font_rect = font_render.get_rect() font_rect.centerx, font_rect.centery = cfg.WIDTH = tank_cursor.get_rect() tank_rect.left = gamebar_rect.left tank_rect.centery = gamebar_rect.centery , tank_rect) pygame.draw.rect(screen, color_gray, (gamebar_rect.left+8, gamebar_rect.top+8, tank_rect.left-gamebar_rect.left

    1.7K20发布于 2020-10-27
  • 来自专栏web秀

    人脸识别JavaScript也可以轻松搞定

    ) { console.log(rect.x, rect.y, rect.width, rect.height); plotRectangle(rect.x, rect.y, rect.width ('rect'); rect.appendChild(input); rect.appendChild(arrow); document.getElementById('photo ').appendChild(rect); rect.style.width = w + 'px'; rect.style.height = h + 'px'; rect.style.left ) { window.plot(rect.x, rect.y, rect.width, rect.height, rect.color); }); }); tracking.track ('div'); document.querySelector('.demo-container').appendChild(rect); rect.classList.add('rect

    1.9K30发布于 2019-09-04
  • 来自专栏wujunmin

    Power BI同期对比这么看

    同期对比组合图 = VAR Height_Rect = 12 //每个条形高度,12像素 VAR Height_Item = 2 * Height_Rect + 5 //两年对比,每个维度数据间隔5个像素 Height_Rect //圆圈的最大半径 VAR Space_Btw_Rect_Circle = Width_Rect * 0.3 + Circle_R VAR ItemCount = DISTINCTCOUNT ", //画背景框 "<rect x='" & Width_ItemLabel & "' y='" & ( [Index] - 1 ) * Height_Item + + Height_Rect / 2 & "' width='" & Width_Rect + Space_Btw_Rect_Circle & "' height='" & Height_Rect & "' fill='none' stroke Height_Item + Height_Rect & "' width='" & Width_Rect * [业绩_同期] / MaxValue & "' height='" & Height_Rect

    1.9K20编辑于 2022-05-19
  • 来自专栏Android知识点总结

    【Flutter高级玩法-shape】Path在手,天下我有

    rect, {TextDirection textDirection}) { return null; } @override Path getOuterPath(Rect rect (Canvas canvas, Rect rect, {TextDirection textDirection}) { print(rect.toString()); } I/flutter ( (RRect.fromRectAndRadius(rect, Radius.circular(10))); var w = rect.width; var h = rect.height; rect) { path.addArc( Rect.fromCenter( center: Offset(lineRate * rect.width, lineRate * rect.width, d / 2), Offset(lineRate * rect.width, rect.height - d / 2), paint);

    4.1K61发布于 2020-04-30
  • 来自专栏前端西瓜哥的前端文章

    图形编辑器开发:一些会用到的简单几何算法

    export function isRectIntersect2(rect1: IBox2, rect2: IBox2) { return ( rect1.minX <= rect2.maxX && rect1.maxX >= rect2.minX && rect1.minY <= rect2.maxY && rect1.maxY >= rect2.minY ); .minX <= rect2.minX && rect1.minY <= rect2.minY && rect1.maxX >= rect2.maxX && rect1.maxY >= rect.y && point.x <= rect.x + rect.width && point.y <= rect.y + rect.height ); } 多个矩形组成的大矩形 (...rects.map((rect) => rect.y)); const maxX = Math.max(...rects.map((rect) => rect.x + rect.width)

    44220编辑于 2023-08-18
  • 来自专栏Some studies in imgs

    A method for detecting the positioning points on an answer sheet

    ) #cv2.rectangle(display_aim_img,(rect[0],rect[1]) ,(rect[0] + rect[2],rect[1] + rect[ = current_rect[1] aim_rect[2] = current_rect[2] aim_rect[3] = current_rect [1]) #cv2.rectangle(display_aim_img,(aim_rect[0],aim_rect[1]) ,(aim_rect[0] + aim_rect[2],aim_rect [0], re_lt_rect[1]) ,(re_lt_rect[0] +re_lt_rect[2] ,re_lt_rect[1] +re_lt_rect[3]), (0,0,255),2) [0], re_rt_rect[1]) ,(re_rt_rect[0] +re_rt_rect[2] ,re_rt_rect[1] +re_rt_rect[3]), (0,0,255),2)

    18210编辑于 2025-10-15
领券