首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

查找矩形python最长边的中心线

矩形的中心线可以通过以下步骤来查找:

  1. 定义矩形:首先,我们需要明确矩形的定义。在数学上,矩形是一个有四个直角的四边形,其中相对的两边长度相等。在计算机图形学中,矩形通常由左上角和右下角的坐标表示。
  2. 计算中心点:要找到矩形最长边的中心线,首先需要计算矩形的中心点坐标。可以通过矩形的左上角和右下角坐标来计算中心点,公式为: 中心点的x坐标 = (左上角的x坐标 + 右下角的x坐标) / 2 中心点的y坐标 = (左上角的y坐标 + 右下角的y坐标) / 2
  3. 计算最长边:接下来,需要确定矩形的最长边。由于矩形的两条对边相等,可以通过计算矩形的四条边的长度来确定最长边。
  4. 查找中心线:最后,在矩形最长边的中心点位置画一条垂直于最长边的直线,即为矩形最长边的中心线。

Python代码示例:

代码语言:txt
复制
import math

def find_longest_side(rectangle):
    # 计算矩形的四条边的长度
    sides = []
    sides.append(math.sqrt((rectangle[0][0] - rectangle[1][0])**2 + (rectangle[0][1] - rectangle[1][1])**2))
    sides.append(math.sqrt((rectangle[1][0] - rectangle[2][0])**2 + (rectangle[1][1] - rectangle[2][1])**2))
    sides.append(math.sqrt((rectangle[2][0] - rectangle[3][0])**2 + (rectangle[2][1] - rectangle[3][1])**2))
    sides.append(math.sqrt((rectangle[3][0] - rectangle[0][0])**2 + (rectangle[3][1] - rectangle[0][1])**2))
    
    # 找到最长边的索引
    longest_side_index = sides.index(max(sides))
    
    # 计算最长边的中心点坐标
    center_x = (rectangle[longest_side_index][0] + rectangle[(longest_side_index+2)%4][0]) / 2
    center_y = (rectangle[longest_side_index][1] + rectangle[(longest_side_index+2)%4][1]) / 2
    
    # 返回最长边的中心点坐标
    return (center_x, center_y)

# 示例矩形的坐标,按照左上、右上、右下、左下的顺序
rectangle_coords = [(0, 0), (4, 0), (4, 2), (0, 2)]

# 查找最长边的中心线
center_line = find_longest_side(rectangle_coords)

print("矩形最长边的中心线坐标:", center_line)

这段代码会计算给定矩形的最长边,并返回最长边中心线的坐标。你可以根据具体的矩形坐标进行测试。

注:由于题目要求不能提及特定品牌商,因此没有提供腾讯云相关产品和产品介绍链接地址。如需了解相关云计算服务商的具体产品,建议前往对应品牌商的官方网站查看。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python OpenCV查找图中矩形

实例来源于OpenCV自带历程,这里以OpenCV4.2为例,路径为: F:\opencv4.2_release\opencv\sources\samples\python\squares.py...目标是找到下图中矩形轮廓和四形轮廓: ?...矩形检测包含检测轮廓是四个顶点,同时两条夹角接近90°,代码和效果如下: import numpy as np import cv2 as cv # 设置putText函数字体 font=cv.FONT_HERSHEY_SIMPLEX...cv.arcLength(cnt, True) #计算轮廓周长 cnt = cv.approxPolyDP(cnt, 0.02*cnt_len, True) #多边形逼近 # 条件判断逼近数量是否为...代码比较简单,核心步骤上面已添加注释,筛选条件自己可以改,如果只想检测四形,不限制为矩形,则修改如下地方: # 只检测矩形(cos90° = 0) if max_cos < 0.1: # 检测四

15.9K41

Python实现图片查找轮廓、多边形拟合、最小外接矩形代码

1、概述 经常用到轮廓查找和多边形拟合等opencv操作,因此记录以备后续使用。本文代码中阈值条件对图片没有实际意义,仅仅是为了测试。 原图为: ?...contours[i]) # 计算面积 rect = cv2.minAreaRect(contours[i]) box = np.int0(cv2.boxPoints(rect)) # 计算最小外接矩形顶点...if ration < 10 and area 20 and area < 4000 and approx.shape[0] 3 : # 对满足条件轮廓画出轮廓拟合多边形 cv2.polylines...在原轮廓基础上画出筛选后轮廓(绿色部分,没有实际意义): ? 补充知识:OpenCV python 轮廓(连通域)最小外接圆形 原图:[cc.jpg] ?...以上这篇Python实现图片查找轮廓、多边形拟合、最小外接矩形代码就是小编分享给大家全部内容了,希望能给大家一个参考。

4.7K30

【字符串】最长回文子串 ( 中心线枚举算法 )

文章目录 一、回文串、子串、子序列 二、最长回文子串 1、中心线枚举算法 2、中心线枚举算法代码示例 一、回文串、子串、子序列 ---- " 回文串 ( Palindrome ) " 是 正反都一样字符串...给出一个字符串(假设长度最长为1000),求出它最长回文子串,你可以假定只有一个满足条件最长回文串。...1、中心线枚举算法 中心线枚举算法 : 使用暴力算法 , 算法复杂度是 O(n^3) ; 暴力算法中有 性能浪费地方 , 找出这个性能浪费点 , 将其优化 , 就可以得到更好算法 ; 如果一个字符串是回文子串...: 中轴线 : 回文串关键在于其 " 中轴线 " , 以中轴线为中心 , 遍历两字符串是否相等 ; 如 : “mabcban” 字符串中 , 回文子串是 “abcba” , 字符 c 是中轴线...指向中心轴左侧 , R 指向中心轴右侧 , 比较指针指向字符是否相等 , 如果相等 , 然后两个指针各往两边走 , 继续比较指向字符是否相等 , 直至获取到最长回文子串 ; 2、中心线枚举算法代码示例

65430

201312-3 最大矩形Python

https://blog.aksy.space/CCF-CSP/201312-3.html 【题目描述】 在横轴上放了 n 个相邻矩形,每个矩形宽度是1,而第(1 ≤ i ≤ n)个矩形高度是h_i...这n个矩形构成了一个直方图。例如,下图中六个矩形高度就分别是3, 1, 6, 5, 2, 3。 [01] 请找出能放在给定直方图里面积最大矩形,它要与坐标轴平行。...对于上面给出例子,最大矩形如下图所示阴影部分,面积是10。 [02] 【输入格式】 第一行包含一个整数n,即矩形数量(1 ≤ n ≤ 1000)。...第二行包含 个整数h_1, h_2, … ,h_n,相邻数之间由空格分隔。(1 ≤ h_i ≤ 10000)。h_i是第i个矩形高度。...【输出格式】 输出一行,包含一个整数,即给定直方图内最大矩形面积。

1.2K00

【算法】哈希表 ( 两数之和 )

算法 系列博客 【算法】刷题范围建议 和 代码规范 【算法】复杂度理论 ( 时间复杂度 ) 【字符串】最长回文子串 ( 蛮力算法 ) 【字符串】最长回文子串 ( 中心线枚举算法 ) 【字符串】最长回文子串...( 动态规划算法 ) ★ 【字符串】字符串查找 ( 蛮力算法 ) 【字符串】字符串查找 ( Rabin-Karp 算法 ) 【算法】双指针算法 ( 双指针算法分类 | 相向双指针 | 有效回文串..., 找到数组中两个元素之和 , 等于给定 target 值 ; 该问题最直观解法 , 就是 蛮力算法 ; 如 : 给定数组 [6, 4, 2, 9] , 给定 target 值为 10 , 找出数组中哪两个元素之和为...哈希表 进行实现 , 哈希表查询单次操作时间复杂度是 O(1) , n 次查询操作是 O(n) ; 哈希表在该算法中 , 既不是输入 , 也不是输出 , 是算法计算过程中耗费 ,...number 索引作为 Value 值 ; 上述操作 , 一遍历 , 一将数组元素插入到哈希表中 , [3, 6, 2, 4] , 在遍历到 6 时 , 从哈希表中查找 10 - 6 = 4 这个值

72520

【算法】归并排序

算法 系列博客 【算法】刷题范围建议 和 代码规范 【算法】复杂度理论 ( 时间复杂度 ) 【字符串】最长回文子串 ( 蛮力算法 ) 【字符串】最长回文子串 ( 中心线枚举算法 ) 【字符串】最长回文子串...( 动态规划算法 ) ★ 【字符串】字符串查找 ( 蛮力算法 ) 【字符串】字符串查找 ( Rabin-Karp 算法 ) 【算法】双指针算法 ( 双指针算法分类 | 相向双指针 | 有效回文串...算法 系列博客 一、归并排序 一、归并排序 ---- 归并排序 : https://www.lintcode.com/problem/463 归并排序原理 : 归并排序 先分割为两部分 , 然后两分别排序..., 只涉及到交换数组中元素 ; 正式由于该额外数组存在 , 因此归并排序 , 并不是排序最优算法 ; 算法要点 : 合并数组中 , 创建数组时机 , 不要放在递归中 , 递归要调用很多次 ,...] array, int start, int end, int[] mergeArray) { // 左右两个数组遍历索引, 初值值为左右两侧开始索引 int leftIndex

71810

Python最长递增序列

如何使用PythonN平方法和二进制搜索法计算一个数组中最长递增子序列。使用N平方法计算最长递增子序列在Python社区中,有一个著名问题是关于最长递增子序列,在不同面试中也会被问到。...这是一个Leetcode ,问题说:给定一个未排序整数数组,找出该数组最长递增子序列或子集长度。一个子集就像一个数组短数组;每个数组可以有多个子集。...如果我们看到从10,9,2,5,3,7,101,18 开始最长递增子序列,我们会发现2, 5, 7, 101 ;这也可能意味着一个答案,但答案也可能是2, 3, 7, 101 ,这也是我们另一个子序列...3, 7, 101 也是一个子序列,但这不是最长,所以我们不考虑它。可能有不止一个组合;正如我们刚刚看到,我们只需要返回长度。...看看下面的例子,哪条路径最长,会是指数级;我们很容易想到必须要有一些动态编程方法。所以,我们有一个数组,每个索引至少有一个长度。

20830

每日一题C++版(字串连接最长路径查找

编程是很多偏计算机、人工智能领域必须掌握一项技能,此编程能力在学习和工作中起着重要作用。...因此小白决定开辟一个新板块“每日一题”,通过每天一道编程题目来强化和锻炼自己编程能力(最起码不会忘记编程) 特别说明:编程题来自“牛客网”和“领扣”以及热心小伙伴题目。...由于小白有时想锻炼某一类编程方法,所以提供代码不一定是最优解,但是本文提供编程代码均为通过测试代码。 字串连接最长路径查找 题目描述 给定n个字符串,请对n个字符串按照字典序排列。...set关联容器本身存入数据就是按照字典顺序进行排序,因此我们只需要将数据输入之后按顺序读出就满足要求了 但是,这个题小白在测试时候遇到了一点问题,就是通过率只有60%,查看了没有通过历程,发现是因为有个测试数据中含有两个重复字符串...这个容器是允许存入数据有重复情况,会将其都保存,而不像set容器只保存一次。

64530

Python3 将源目录中图片根据设定最长参数保存到目标目录脚本(Image 使用)

关键问题是算法,例如,我要求图片最长为 400px,那么理想情况下,处理状态应该是: 源图片尺寸为 800*600,则缩放后结果是 400*300 源图片尺寸为 600*800,则缩放后结果是 300...*400 源图片尺寸为 300*200,因为无论是宽和高均小于我们设定最长,所以,原样保存不做处理。.../usr/bin/env python3 # -*- coding: UTF-8 -*- import argparse import os import imghdr from PIL import...只设置了最长参数以及源目录 ? 脚本会提示,不设置目标目录则会覆盖源文件,直接回车,或者输入 Y 或者 y 确认,输入 N 或者 n 则退出程序。 设定了目标目录,但目标目录不存在 ?...代码解析 首先,要写命令行脚本,就需要处理各种各样参数,所以,argparse 库是必不可少 Python os 库对文件夹常见用法 # 判断目录是否存在 os.path.exists(__dir

1.2K30

WPF 形状 StrokeThickness 属性对边框影响

" StrokeThickness="100" /> 而 StrokeThickness 将以线段作为中心,往两撑开,相当于一个矩形矩形中心线就是线段 从 XAML 设计器上比较好了解,可以看到的如下图蓝色线部分就是线条定义...因为这样设计起来比较好计算 而 SVG 行为和 WPF 不相同,在 SVG 里面是使用矩形边框作为中心,向两填充。...我比较不推荐 SVG 设计,因为这样子意味着如果修改了矩形边框,那么矩形视觉大小也就被更改了 Ellipse 对于封闭其他图形,如 Ellipse 来说,行为和矩形相同,都是向内撑开,如下面代码...中间圆形,而不是指在形状中间向两填充。...Geometry 线条中间向两填充 ---- 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WPF-%E5%BD%A2%E7%8A%B6%

2.7K20

IJCAI 2021|美团提出车道线检测新框架SGNet,精准且快速

首先,根据车道线掩码计算每个车道线实例L_Lane最小外接矩形R,定义该矩形长与宽为h与w。...然后取垂直于矩形中心线记为L_center,x轴正半轴与L_center之间顺时针夹角记为θ。基于这种方式,用L_center表示车道线位置,h与w表示车道线范围。...中心线L_center可以使用直线一般式表示为: ? 。当中心线上一个点y坐标是y_i时,相应 x 坐标为: ? 。容易得到,车道线实例L_Lane与中心线L_center在x上偏移量 ?...因此,基于中心线L_center和偏移量 ? ,可以方便地表征车道线实例L_Lane。 2、消失点引导锚生成机制 为了正确预测中心线L_Lane和车道线偏移量 ?...为了保证生成 anchor 足够稠密,本方法在以消失点为中心 ? 矩形区域,每隔 ? 个像素进行基于点 anchor 生成。

96140

非重叠矩形随机点(前缀和+二分查找

题目 给定一个非重叠轴对齐矩形列表 rects,写一个函数 pick 随机均匀地选取矩形覆盖空间中整数点。 提示: 整数点是具有整数坐标的点。 矩形周边上点包含在矩形覆盖空间中。...第 i 个矩形 rects [i] = [x1,y1,x2,y2], 其中 [x1,y1] 是左下角整数坐标,[x2,y2] 是右上角整数坐标。 每个矩形长度和宽度不超过 2000。...按权重随机选择(前缀和+二分查找) 按照总个数均匀分配 计算每个矩形个数,以及点个数前缀和 二分查找查找随机到点所在矩形,在该矩形内找到点偏移位置 class Solution {...int n; //矩形个数 int total;//总个数 int pointId;//选取id vector presum;//所有矩形个数前缀和...{ pointId = rand()%total + 1;//随机点 int L = 0, R = n-1, mid, rectID; // 二分查找

53420

如何在 Windows 和 Linux 上查找哪个线程使用 CPU 时间最长

在 Windows 和 Linux 系统监控过程中,寻找占用 CPU 时间最长线程/进程是一项非常重要任务。...下面将针对这个问题提供 Windows 和 Linux 平台下分别应该如何进行解答。 Windows 平台查找占用 CPU 时间最长线程 1、打开“任务管理器”,并切换到“详细信息”选项卡。...Linux 平台查找占用 CPU 时间最长线程 找到占用 CPU 时间最长进程通过命令: top -H -p pid 其中,参数 -p 用于查看某一个进程线程状态;-H 可以打印进程线程树状结构...在以上命令中,我们可以看到每个线程 CPU 使用率和 PID,以及其他属性。如果要查找占用CPU时间最长线程,则应根据需要对它们进行排序或筛选。...无论Windows还是Linux平台,都可以通过内置命令行工具来查找哪个线程/进程花费了最多CPU时间。

47530

【算法】双指针算法 ( 双指针算法分类 | 相向双指针 | 有效回文串 )

: 设置两个指针 ( 索引 ) , 进行不同方式遍历 , 使用最高频算法 ; 打擂台算法 : 设置一个擂主值 , 设置为无穷大或无穷小 , 通过遍历让该擂主值与遍历值打擂台 ; 求最大值最小值常用...; 单调栈算法 ; 单调队列算法 ; 双指针算法分类 : 相向双指针 : 判断一个字符串是否是回文串 , 从两向中心遍历 ; 背向双指针 : 查找一个字符串最长回文子串使用 " 中心线枚举算法 "...就是背向双指针算法 , 从中心向两遍历 ; ( 出现频率较 - 低 ) 同向双指针 : 相向双指针算法分类 : 翻转类型 : ① 翻转字符串 , ② 判断回文串 ; 两个指针分别指向收尾 , 两往中间走...但是如果添加了上述要求 , 就需要处理大小写 , 特殊字符问题 , 有两种方案 : 创建新字符串 , 过滤掉大小写及特殊字符干扰, 然后翻转字符对比 , 这样会增加额外空间开销 ; 推荐使用双指针算法 , 一进行过滤..., 一进行对比 ; 设计两个指针 , 分别指向字符串最左侧 和 最右侧 ; 每次遍历 , 都要进行 两个指针下标判断 , 否则就会导致下标访问越界 ; 代码示例 : public class Solution

1.8K10

python 无重复字符最长子串

给定一个字符串,请你找出其中不含有重复字符 最长子串 长度。 示例 1: 输入: "abcabcbb" 输出: 3  解释: 因为无重复字符最长子串是 "abc",所以其长度为 3。...示例 2: 输入: "bbbbb" 输出: 1 解释: 因为无重复字符最长子串是 "b",所以其长度为 1。...我们只要把队列左边元素移出就行了,直到满足题目要求! 一直维持这样队列,找出队列出现最长长度时候,求出解!...无重复字符最长子串 30. 串联所有单词子串 76. 最小覆盖子串 159. 至多包含两个不同字符最长子串 209. 长度最小子数组 239. 滑动窗口最大值 567....lookup.find() 查找对应元素,成功返回对应迭代器,失败返回最后一个元素迭代器(即 lookup.end() ) lookup.end() 大多数人认为是最后添加进去元素对应迭代器,其实不然

2.2K20

Leetcode【939、1048】

Minimum Area Rectangle 解题思路: 最小面积矩形。给一个坐标列表,计算这些坐标可以组成最小矩形面积,其中矩形平行于 x 轴和 y 轴。 这是一道 Google 面试题。...也就是先确定对角线上点),然后判断 [x1, y2] 和 [x2, y1] 是不是在 set 中,这样就可以判断出是否存在由 [x1, y1] -> [x2, y2] 形成矩形,并更新最小面积值;...3、为了记录最长词链长度,可以定义一个字典 dic,键为单词,值为以该单词为首最长词链长度。dic 相当于动态规划中 dp 数组,接下来要找状态转移方程。...4、对于单词 word 每一个子串 sub,如果 sub 在单词列表中能够找到(这里为了加快查找速度,要先将单词列表转化为集合 set,查找速度为 O(1)),则该子串 sub 最长词链长度取决于原来...sub 最长词链长度与在 word 最长词链长度基础上加 1 中最大值,即 dic[sub] = max(dic[sub], dic[word] + 1)。

74220
领券