首页 > 其他分享 >按键精灵-搜索给定区域内最后一个符合颜色值的坐标

按键精灵-搜索给定区域内最后一个符合颜色值的坐标

时间:2024-03-25 13:44:41浏览次数:23  
标签:result right last up down 按键精灵 给定 坐标 left

Function get_lastPoint_coordinate_v2(left_x, left_y, right_x, right_y, color_value)
    //搜索给定区域的最后一个符合color_value颜色值的坐标,若是不存在,就返回-1,-1
    Dim result_x, result_y
    result_x = - 1 
    result_y = - 1 
    //若是给定的区域是反向区域,或者轴上存在重合,就结束函数
    If left_x >= right_x Then 
        get_lastPoint_coordinate_v2 = last_x
    End If
    If left_y >= right_y Then 
        get_lastPoint_coordinate_v2 = last_y
    End If
    
    right_down_result_x = - 1 
    right_down_result_y = - 1 
    left_down_result_x = - 1 
    left_down_result_y = - 1 
    right_up_result_x = - 1 
    right_up_result_y = - 1 
    left_up_result_x = - 1 
    left_up_result_y = - 1
    
    //分成4份,计算中点坐标
    center_x = left_x+ CInt((right_x-left_x)/2)
    center_y = left_y+CInt((right_y - left_y) / 2)
    //左上角
    FindColor left_x,left_y,center_x,center_y,color_value,intX,intY
    If intX > 0 And intY > 0 Then 
        left_up_result_x = intX
        left_up_result_y = intY
        If left_up_result_x > last_x Then 
            //更新实际需要的坐标值
            last_x = left_up_result_x
            last_y = left_up_result_y
            //避免下一次划分区域的时候又找寻到同一个坐标值
            left_up_result_x = left_up_result_x + 1
            left_up_result_y=left_up_result_y+1
        End If
    End If
    //右上角
    FindColor center_x,left_y,right_x,center_y,color_value,intX,intY
    If intX > 0 And intY > 0 Then 
        right_up_result_x = intX
        right_up_result_y = intY
        If right_up_result_y > last_y  Then 
            //更新实际需要的坐标值
            last_x = right_up_result_x
            last_y = right_up_result_y
            //避免下一次划分区域的时候又找寻到同一个坐标值
            right_up_result_x = right_up_result_x + 1
            right_up_result_y=right_up_result_y+1
        End If
    End If
    //左下角
    FindColor left_x,center_y,center_x,right_y,color_value,intX,intY
    If intX > 0 And intY > 0 Then 
        left_down_result_x = intX
        left_down_result_y = intY
        If left_down_result_x > last_x Then 
            //更新实际需要的坐标值
            last_x = left_down_result_x
            last_y = left_down_result_y
            //避免下一次划分区域的时候又找寻到同一个坐标值
            left_down_result_x = left_down_result_x + 1
            left_down_result_y=left_down_result_y+1
        End If
    End If
    //右下角
    FindColor center_x,center_y,right_x,right_y,color_value,intX,intY
    If intX > 0 And intY > 0 Then 
        right_down_result_x = intX
        right_down_result_y = intY
        If right_down_result_x > last_x Then 
            //更新实际需要的坐标值
            last_x = right_down_result_x
            last_y = right_down_result_y
            //避免下一次划分区域的时候又找寻到同一个坐标值
            right_down_result_x = right_down_result_x + 1
            right_down_result_y=right_down_result_y+1
        End If
    End If
    
    TracePrint "last_x:"&last_x & "last_y:"&last_y
    //如下排列顺序请把持不变。
    If right_down_result_x > 0 And right_down_result_y > 0 Then 
        //满足条件的坐标在右下角被找到,那么后续的函数调用也将在这个区域里面进行处理。
        get_lastPoint_coordinate_v2 right_down_result_x, right_down_result_y, right_x, right_y, color_value
    ElseIf right_up_result_x > 0 And right_up_result_y > 0 Then 
        //满足条件的坐标在右上角被找到,那么后续的函数调用也将在这个区域里面进行处理。
        get_lastPoint_coordinate_v2 right_up_result_x, right_up_result_y, right_x, center_y, color_value
    ElseIf left_down_result_x > 0 And left_down_result_y > 0 Then 
        //满足条件的坐标在左下角被找到,那么后续的函数调用也将在这个区域里面进行处理。
        get_lastPoint_coordinate_v2 left_down_result_x, left_down_result_y, center_x, right_y, color_value
    ElseIf left_up_result_x > 0 And left_up_result_y > 0 Then 
        //满足条件的坐标在左上角被找到,那么后续的函数调用也将在这个区域里面进行处理。
        get_lastPoint_coordinate_v2 left_up_result_x,left_up_result_y,center_x,center_y,color_value
    End If
End Function

如上是函数get_lastPoint_coordinate_v2的定义,调用示例:

last_x = - 1 
last_y = - 1 

get_lastPoint_coordinate_v2 1050,461,1286,658,"00FFFF"

TracePrint last_x
TracePrint last_y

如调用所示,需要定义last_x 和last_y变量,用于函数将坐标值保存下来。

标签:result,right,last,up,down,按键精灵,给定,坐标,left
From: https://www.cnblogs.com/love-DanDan/p/18094207

相关文章

  • 无人驾驶中的坐标转换
    无人驾驶中的坐标转换无人车上拥有各种各样的传感器,每个传感器的安装位置和角度又不尽相同。对于传感器的提供商,开始并不知道传感器会以什么角度,安装在什么位置,因此只能根据传感器自身建立坐标系。无人驾驶系统是一个多传感器整合的系统,需要将不同位置的传感器数据统一到一个固......
  • 上位机开发 halcon坐标转轴坐标
    背景    上位机开发中有一种相机叫标定相机,主要是有来给某些要进行根据CAD图点位计算时当前产品实际点位坐标时使用的一种标定测量相机。主要原理是根据两个或多个指定的标定点进行取图计算圆心坐标,再将视觉计算出的圆心坐标和取图时的轴坐标进行偏差计算。最后得到标......
  • opengl日记12-opengl坐标系统
    文章目录环境代码CMakeLists.txtvertexShaderSource.vsmain.cpp总结环境系统:ubuntu20.04opengl版本:4.6glfw版本:3.3glad版本:4.6cmake版本:3.16.3gcc版本:10.3.0在<opengl学习日记11-opengl的transformtions变换示例>的基础上,进行修改,实现坐标系统变换效果。代码CM......
  • Qt QPolarChart极坐标图(阿基米德线、四叶曲线、六叶花瓣、三叶花瓣、心形曲线)
    QChart还有专门画极坐标的类QPolarChart,它的界面是一个圆盘。注意在使用之前,包括命名空间QT_CHARTS_USE_NAMESPACE,.pro文件中也要增加QT+=charts.1#include<QApplication>2#include<QDebug>3#include<QtCharts/QScatterSeries>4#include<QtCharts/QLineSer......
  • [Python初阶]2255.统计是给定字符串前缀的字符串数目
    目录     2255.统计是给定字符串前缀的字符串数目①.题目②.问题分析③.startswith()方法理解与说明Ⅰ.定义和用法 Ⅱ.语法 ④.问题解决⑤总结     2255.统计是给定字符串前缀的字符串数目①.题目②.问题分析需求:统计列表words中,是字......
  • Daz 3D中,模型的UV坐标是固定的
    在Daz3D中,模型的UV坐标是固定的。这意味着在Daz3D创建或编辑模型时,UV坐标不会发生变化。这种固定的UV坐标使得纹理贴图和材质编辑更加可靠和一致。以下是关于Daz3D模型UV坐标固定性的一些重要信息:1.**一致性**:Daz3D的模型在不同情况下都保持相同的UV坐标,这意味着无论在何种......
  • 2024-03-13:用go语言,给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 输
    2024-03-13:用go语言,给定一个二叉搜索树,找到该树中两个指定节点的最近公共祖先。输入:root=[6,2,8,0,4,7,9,null,null,3,5],p=2,q=8。输出:6。答案2024-03-13:来自左程云。灵捷3.5大体步骤如下:1.首先,我们需要遍历树来找到这两个节点。从根节点开始,若两个节点都比......
  • 给定字符串,输出符合要求的子串
    给定字符串,输出出现次数>3的字符串。实例:输入:"kouredgameredokwhogameredkaraokeyukarikouredrednanikoucankoukouongakugamegame"输出:redgamekou代码:importoperatorinput_str="kouredgameredokwhogameredkaraokeyukarikouredredn......
  • vue3 监听鼠标点击拖动事件,移动端滑动事件,页面指针坐标事件
    PointerEventsAPI是Hmtl5的事件规范之一,它主要目的是用来将鼠标(Mouse)、触摸(touch)和触控笔(pen)三种事件整合为统一的API。Pointer指可以在屏幕上反馈一个指定坐标的输入设备。PointerEvent事件和TouchEventAPI对应的触摸事件类似,它继承扩展了TouchEvent,因此拥有TouchEven......
  • Java工具 - 坐标系WGS-84,GCJ-02,BD-09之间的相互转换
    importjava.util.ArrayList;importjava.util.List;/***地图坐标转换*/publicclassGpsCoordinateUtils{privatestaticfinaldoublePI=3.1415926535897932384626433832795;//privatestaticfinaldoublePI=3.14159265358979324;privatestaticf......