热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

判断一个点是否在旋转过任意角度的矩形内

今天在做图像旋转时遇到了一个问题。图像是转好了,鼠标点按下的坐标也知道了,但是就不知道怎么判断在不在旋转后的图像里(当然用眼睛去看鼠标点按下的的位置,肯定是知道在不在旋转后的图像里的。~_~)。

今天在做图像旋转时遇到了一个问题。图像是转好了,鼠标点按下的坐标也知道了,但是就不知道怎么判断在不在旋转后的图像里(当然用眼睛去看鼠标点按下的的位置,肯定是知道在不在旋转后的图像里的。~_~)。后面在网上查了一下,也没有一个现成可以用的算法代码。没办法,只能结合网上查的资料自己写了。现在已经写好了,所以就写出来供大家参考一下。

矩形没经过旋转时的左上角的坐标为(LeftUpX,LeftUpY), 右下角的坐标为(RightDownX,RightDownY),在矩形旋转角度为O之后,求此时按下的鼠标点(X,Y)在不在矩形内。

解决方案如下:(以下)

/*1、此时的矩形已经旋转了O度,那么第一步就是要还原鼠标点*/

/*矩形的长宽*/

int w = RightDownX - LeftUpX;
int h = RightDownY - LeftUpY;

/*矩形中心点坐标*/

Point center;
center.X = LeftUpX + w/2;
center.Y = LeftUpY+ h/2;

/*还原鼠标点*/

int nTempX, nTempY;
nTempX = center.X + (
- center.X)*cos((-O)*(PI/180)) - (- center.Y) * sin((-O)*(PI/180));
nTempY = center.Y + (
- center.X)*sin((-O)*(PI/180)) + (- center.Y) * cos((-O)*(PI/180));

/*2、判断还原后的鼠标点在不在没旋转的矩形内,如果还原后的鼠标点在没旋转的矩形内,那么鼠标点(X,Y)同样在旋转O度之后的矩形内,否则不在。*/

if(nTempX> LeftUpX &&nTempXnTempY> LeftUpY &&nTempY    

{

//鼠标点(X,Y)在旋转O度之后的矩形内

}

第一次写博客,不好的地方请大家多多谅解!!!


推荐阅读
  • A题这题贼水,直接暴力就可以了。用个bool数组记录一下,如果某一天,当前剩下的最大的出现了的话,就输出一段。1#include<stdio.h>2intn;3boolvi ... [详细]
  • 本文整理了一份基础的嵌入式Linux工程师笔试题,涵盖填空题、编程题和简答题,旨在帮助考生更好地准备考试。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 本文总结了《编程珠玑》第12章关于采样问题的算法描述与改进,并提供了详细的编程实践记录。参考了其他博主的总结,链接为:http://blog.csdn.net/neicole/article/details/8518602。 ... [详细]
  • 三角测量计算三维坐标的代码_双目三维重建——层次化重建思考
    双目三维重建——层次化重建思考FesianXu2020.7.22atANTFINANCIALintern前言本文是笔者阅读[1]第10章内容的笔记,本文从宏观的角度阐 ... [详细]
  • 非计算机专业的朋友如何拿下多个Offer
    大家好,我是归辰。秋招结束后,我已顺利入职,并应公子龙的邀请,分享一些秋招面试的心得体会,希望能帮助到学弟学妹们,让他们在未来的面试中更加顺利。 ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • 双指针法在链表问题中应用广泛,能够高效解决多种经典问题,如合并两个有序链表、合并多个有序链表、查找倒数第k个节点等。本文将详细介绍这些应用场景及其解决方案。 ... [详细]
  • 深入解析CAS机制:全面替代传统锁的底层原理与应用
    本文深入探讨了CAS(Compare-and-Swap)机制,分析了其作为传统锁的替代方案在并发控制中的优势与原理。CAS通过原子操作确保数据的一致性,避免了传统锁带来的性能瓶颈和死锁问题。文章详细解析了CAS的工作机制,并结合实际应用场景,展示了其在高并发环境下的高效性和可靠性。 ... [详细]
  • 深入RTOS实践,面对原子操作提问竟感困惑
    在实时操作系统(RTOS)的实践中,尽管已经积累了丰富的经验,但在面对原子操作的具体问题时,仍感到困惑。本文将深入探讨RTOS中的原子操作机制,分析其在多任务环境下的重要性和实现方式,并结合实际案例解析常见的问题及解决方案,帮助读者更好地理解和应用这一关键技术。 ... [详细]
  • 展开全部下面是实现Java批量打印功能的具体工具类,其中的Info类和UserClass为具体的快递面单中要打印的信息e68a8462616964757a686964 ... [详细]
  • xmpphp测试openfire发布信息
    xmpphp测试openfire发布信息1.先下载xmpphp,地址:https:code.google.compxmpphpdownloadslist2.编写php脚本。<?php ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了重温Linux内核:互斥和同步相关的知识,希望对你有一定的参考价值。文章目录 ... [详细]
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼错误72error:ErroropeningoutputfileC:Users林鑫辰AppDataLocalTemptmpxft_0000 ... [详细]
  • Matlab:数学之美–绘制分形图形学习最好的动力是兴趣,所以我们先看看效果:这一篇与Java学习日记:数学之美-分形图形绘制有共同之处,只是所用的工具不同。clear;%不同的参 ... [详细]
author-avatar
曹衡斌_307
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有