line怎么知道对方有没有加你

line怎么知道对方有没有加你,第1张

在LINE上添加新好友后,我们可能会忘记对方的昵称,或者突然找到他。其实LINE内置了“新好友提醒”功能!在LINE首页的“小铃铛”提醒页面中,会显示您最近添加了哪些人作为新的LINE好友,以及哪些人最近添加了您作为LINE好友。

这个新好友查询教学,不仅会教你如何查询最近加入的线下好友,还会教你如何判断是你先加了对方还是对方先加你为线下好友。

TIN为线性插值,因此只需判断三角形三个顶点,即可求得三角形面内任意一点的坐标。(根据三点成面原理)

公式推导较为复杂,不理解的可查看这个:

三点成面

2.4 精度评价

检查点法使用中误差(RMSE)作为精度评价指标,从整体上评估DEM高程与真值之间的离散程度。具体定义如下:

请添加图片描述

其中,Ei为点Pi从简化后LiDAR点构建的TIN中内插得到的高程值,Hi为点Pi在原始LiDAR地面点云数据中的高程值,均以m为单位,N为选择的检查点个数。

代码实现

import os

import math

from program import CreateTIN as ct

import datetime

from mpl_toolkits.mplot3d import Axes3D

import matplotlib.pyplot as plt

import numpy as np

# 判断检查点是否与原始点存在同坐标情况

def checkdata(checkpoint_list, initialdata_list):

checkName_list = [] # 保存检查点的点名标签

initialName_list = [] # 保存原始点的点名标签

for checkpoint in checkpoint_list:

for initialdata in initialdata_list:

if checkpoint.X == initialdata.X and checkpoint.Y == initialdata.Y:

checkName_list.append(checkpoint.PointName)

initialName_list.append(initialdata.PointName)

if checkName_list != [] and initialName_list != []:

return checkName_list, initialName_list

else:

print("没找到同坐标点")

def getNearistPoint(Point,initialdata_list,Net):

# 判断点处于哪个三角形中,并返回三个角点

line_list = Net[0] # 边列表

Triangle_list = Net[1] # 三角形列表

nearpoint = initialdata_list[ct.NearistPoint(Point, initialdata_list)] ## 在原始数据中返回距离最近的点

nearpoint_list = [] # 用以存储与最近点有关系的点

nearline_list = [] # 用以储存最近点相关边

slope_list = [] # 储存斜率

for line in line_list:

if line.BeginPoint == nearpoint:

slope = slopee(line.BeginPoint.X, line.BeginPoint.Y, line.EndPoint.X, line.EndPoint.Y)

slope_list.append(slope) # 添加斜率

nearline_list.append(line) # 添加最近点相关边

Point_aothr = line.EndPoint

nearpoint_list.append(Point_aothr) # 添加与最近点有关系的点

elif line.EndPoint == nearpoint:

slope = slopee(line.BeginPoint.X, line.BeginPoint.Y, line.EndPoint.X, line.EndPoint.Y)

slope_list.append(slope) # 添加斜率

nearline_list.append(line) # 添加最近点相关边

Point_aothr = line.BeginPoint

nearpoint_list.append(Point_aothr) # 添加与最近点有关系的点

slope_label = list(np.argsort(slope_list)) # 返回斜率递减下标

slope_label.append(slope_label[0]) # 把开头扩充到结尾

nearline_list.append(nearline_list[0]) # 把列表扩充一个开头

slope = slopee(nearpoint.X, nearpoint.Y, Point.X, Point.Y) # 目标斜率

# 判断目标斜率在哪两个斜率之间

index = 0

for i in range(len(slope_label) - 1):

if slope_list[slope_label[i]] <= slope <= slope_list[slope_label[i + 1]]:

index = i

# nearline_list[slope_label[index]] # 一条边

# nearline_list[slope_label[index+1]] # 另一条边

if (nearline_list[slope_label[index]].BeginPoint ==nearline_list[slope_label[index+1]].BeginPoint or nearline_list[slope_label[index]].BeginPoint ==nearline_list[slope_label[index+1]].EndPoint):

Point_1 = nearline_list[slope_label[index]].EndPoint

Point_2 = nearline_list[slope_label[index+1]].BeginPoint

Point_3 = nearline_list[slope_label[index+1]].EndPoint

elif (nearline_list[slope_label[index]].EndPoint == nearline_list[slope_label[index+1]].BeginPoint or nearline_list[slope_label[index]].EndPoint ==nearline_list[slope_label[index+1]].EndPoint):

Point_1 = nearline_list[slope_label[index]].BeginPoint

Point_2 = nearline_list[slope_label[index+1]].BeginPoint

Point_3 = nearline_list[slope_label[index+1]].EndPoint

return Point_1,Point_2,Point_3

def getHigh(point1,point2,point3,point4):

# 依据三点成面,判断一个已知X,Y坐标的点的H坐标,此公式没错

# A*x+B*y+C*z+D=0 ,求解A,B,C

M = ((point3.H-point1.H)*(point2.X-point1.X)-(point2.H-point1.H)*(point3.X-point1.X))

N = ((point3.Y-point1.Y)*(point2.X-point1.X)-(point2.Y-point1.Y)*(point3.X-point1.X))

D = ((-point1.H*(point2.X-point1.X)+(point2.H-point1.H)*point1.X)*N+(point1.Y*(point2.X-point1.X)-(point2.Y-point1.Y)*point1.X)*M)

A = -(point2.H-point1.H)*N+M*(point2.Y-point1.Y)

B = -(point2.X-point1.X)*M

C = (point2.X-point1.X)*N

if C!=0:

hight = (-D -A*point4.X-B*point4.Y)/C

else:

hight = 0

return hight

def draw(point_list,line_list):

#ax.scatter(xs, ys, zs, s=20, c=None, depthshade=True, *args, *kwargs)

# np.random.rand(n)产生1*n数组,元素大小0-1

fig = plt.figure() # 打开画图窗口,在三维空间中绘图

ax = fig.add_subplot(111, projection='3d')

for point in point_list:

ax.scatter(point.X, point.Y, point.H, c='c', marker= 'o')

for line in line_list:

x = [line.BeginPoint.X,line.EndPoint.X]

y = [line.BeginPoint.Y,line.EndPoint.Y]

z = [line.BeginPoint.H,line.EndPoint.H]

ax.plot(x,y,z,c='r')

ax.set_xlabel('X Label')

ax.set_ylabel('Y Label')

ax.set_zlabel('Z Label')

plt.show()

def slopee(x1,y1,x2,y2): # 求斜率

x = (y2 - y1) / (x2 - x1)

return x

if __name__ == '__main__':

start = datetime.datetime.now() # 起始时间

print('起始时间:', start)

# '''*******************调试********************'''

# 读取数据

initialdata_path = r'\\'

checkpoint_path = r"\\"

initialdata_list = ct.ReadDataTXT(initialdata_path)

checkpoint_list = ct.ReadDataTXT(checkpoint_path)

checkdata(checkpoint_list, initialdata_list)

Net = ct.CreatTIN(initialdata_list) # 生成三角网

# 求RMSE

MSE = 0

for checkpoint in checkpoint_list:

point_list = getNearistPoint(checkpoint, initialdata_list, Net) # 返回三个点坐标

hight = getHigh(point_list[0],point_list[1],point_list[2],checkpoint)# 通过三个坐标返回高程值

MSE = MSE + (hight - checkpoint.H)**2

RMSE = math.sqrt(MSE / len(checkpoint_list))

print(RMSE)# 求RMSE

end = datetime.datetime.now() # 结束时间

print('总用时:', end - start)

此处调用了PYthon TIN生成所蕴含的代码,并将文件保存为CreateTIN.py进行调用。

随机展示一个特征点云数据和相邻原始点云关系图,未连线处未特征点。

由于简化后点云数据暂存一定问题,因此特征点云并不在TIN三角网上,因此RMSE偏大,但整体方法可行。

最近做的Android海外项目需要接入line登录,但是网上搜索了一圈发现没有写得非常详实的中文文档参考,因此决定写一篇。

LINE 是 韩国 互联网集团 NHN 的日本子公司NHN Japan推出的一款 即时通讯 软件。全世界用于数亿用户,类似微信

到line开发者平台 https://developers.line.biz/console/ ,注册账号,并添加provider,provider类似组织或公司,一般以公司表示创建,然后在此provider下创建一个新的channel,channel可以类比国内其他平台创建的应用,最终会得到一个channelID(即appID),通过此channelID与应用关联。创建时选择类型:LINE Login ,根据提示逐个填入相关资料,这些资料都会在后面app调起的授权页面显示,可先尝试填充,后面更改。重点关注Package names和App types两个选项,App types选择web和App两个,即支持跳转app登录和跳转网页登录;

implementation 'com.linecorp:linesdk:lastest-version'

根据 https://github.com/line/line-sdk-android ,引入最新版本

接入登录官方提供了两种方式,内建登录按钮和自定义登录按钮。

后续根据接收到的accessToken与服务端进行交互验证。

所有的错误第一时间检查网络是否正常,是否可正常打开连接line


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11260243.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存