iOS开发判断一个点是否在某个区域(精选3篇)由网友“jiang150”投稿提供,以下是小编收集整理的iOS开发判断一个点是否在某个区域,仅供参考,希望对大家有所帮助。
篇1:iOS开发判断一个点是否在某个区域
iOS有时候需要判断是否touch到某个图的区域中,也就是touch到的这个点是否在某个图的区域范围内。
解决问题的办法很多, 这里简单介绍一种。
我们可以通过CGPath创建一个区域,区域是由路径做两点间线段并闭合成的区域,然后就可以用CGPath相关函数CGPathContainsPoint判断点是否在区域里了。
比如这里创建了一个简单的矩形。它的frame为(4, 4, 10, 10)。 四个顶点的坐标分别为(4, 4), (4, 14), (14, 14), (14, 4)
显然易得, (1, 1)不在这个区域内 (5, 5)在这个区域内。
我们可以验证一下, 代码如下:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
- (void)viewDidLoad
{
[super viewDidLoad];
CGMutablePathRef pathRef=CGPathCreateMutable;
CGPathMoveToPoint(pathRef, NULL, 4, 4);
CGPathAddLineToPoint(pathRef, NULL, 4, 14);
CGPathAddLineToPoint(pathRef, NULL, 14, 14);
CGPathAddLineToPoint(pathRef, NULL, 14, 4);
CGPathAddLineToPoint(pathRef, NULL, 4, 4);
CGPathCloseSubpath(pathRef);
CGPoint point=CGPointMake(5, 5);
CGPoint utPoint=CGPointMake(1, 1);
if (CGPathContainsPoint(pathRef, NULL, point, NO))
{
NSLog(@“point in path!”);
}
if (!CGPathContainsPoint(pathRef, NULL, outPoint, NO))
{
NSLog(@“outPoint out path!”);
}
}
篇2:判断一个字段是否在表中的函数数据库教程
'判断一个字段是否在表中
Function BlnField(sTblName As String, sFldName As String) As Boolean
'sTblName 源表名
'要查找的字段名
Dim fld As Field
Dim rs As DAO.Recordset
BlnField = False
Set rs = CurrentDb.OpenRecordset(sTblName)
rs.Fields.Refresh
For Each fld In rs.Fields
If fld.Name = sFldName Then
BlnField = True
Exit For
End If
Next
rs.Close
Set rs = Nothing
Set fld = Nothing
End Function
Private Sub 命令0_Click()
'返回True则有此字段,False则无
MsgBox BlnField(“tbl1”, “ID”)
End Sub
篇3:在ORalce 中,怎么判断两个时间段之间是否有交集, 编写的一个函数.数据库教程
函数
判断2个时间段是否有交集的函数,开始是在我计算考勤的时候有用过,后来发现用到的地方越来越多, 丢个砖头
9i 下通过.
两个时间段 之间是否有交集 intime---outtime
fromdate--todate
如果有交集,则返回1,否则返回0
*/
create or replace function func_IsTimeCross(intime in date, outtime in date,
fromdate date , todate date )
return number is
Result number;
begin
Result :=0;
if (fromdate if (todate>=outtime) then --请假的结束时间>=当天应下班时间 说明有交集 Result :=1; end if; end if; if (fromdate>=intime) then -- 如果请假开始时间>应上班时间,只要在下班时间之前,则也说明有集 if (fromdate<=outtime) then Result :=1; end if; end if ; return(Result); end func_IsTimeCross;