锚点有什么用

锚点有什么用,第1张

问题一:锚点是什么意思? 创建锚链接

锚就是在文档中设置位置标记,并给该位置一个名称,以便引用。通过创建锚点,可以使链接指向当前文档或不同文档中的指定位置。锚点常常被用来跳转到特定的主题或文档的顶部,使访问者能够快速浏览到选定的位置,加快信息检索速度。

1、设置锚点

把光标置于文档窗口想要设置锚点的地方,点击插入面板中”常用”/”常用锚记”。在d出的对话框中起一个锚名字。

2、创建锚点链接 选择要建立链接的文本或图像,在属性面板的链接中输入一个#号和锚点名。例如:#aa。 要链向不同页面中的锚点,则点击链接边的文件夹小图标,在打开对话框中选择要链接的文件,按确定键后在属性面板的链接栏中会显示链接的文件地址,在地址后面紧跟着输入#号和锚名字

问题二:什么是锚点链接、锚点链接的作用 锚点链接就是 比如你现在在页面的最础端吧 然后比如有个锚点链接是链接到这个页面最下面的 你点一下就到最下面了 就是点到指定的位置

问题三:html网页中锚点是什么,如何使用锚点 锚点是什么?

锚点也可以理解成为一种超级链接,只不过它是网页内部的超级链接(注意不是网站内部)。

比如我们有一个网页很长很长,而且里面的内容,可以分为N个部分。这样的话,我们就可以在网页的顶部设置一些锚点,这样便可以方便浏览者点击相应的锚点,到达本页内相应的位置,而不必在一个很长的网页里自行寻找。

锚点的使用。

锚点从代码上看,仍然是超级链接的一种应用。

这样的一个无内容的标签,便是一个锚点了,我们可以把它放在网页中与之间的任意位置。当然,究竟放在哪个位置,就要看我们的实际需要了。

下面举一个例子:

锚点示例

网页第一部分

网页第二部分

1返回顶部

2>

问题四:html网页中锚点是什么,如何使用锚点 锚点就是在某个标签留下一个ID的值,然后在其他地方就可以通过该Id的值取到该标签,通过锚点,可以快速的找到该标签

问题五:HTML代码中什么是锚点?怎么设置锚点? 例如我们在做一个很长的网页时,需要在页面内做一个导航,点击导航里罚链接不是新开一个窗口或者跳转到其他网址,而是跳转到当前页的某一个位置。那么所要跳转到的那个位置,我们就叫做锚点,它是一种在页面内部定位的方式。

设置锚点也是很简单的,例如一个文章分了三段,每段有个标题,标题的代码是这样的

我是标题一]@]@]

@ 我是标题二]@]@]

@ 我是标题三]@]@]

@如果我想要在页面内设置锚点,做一个索引,点击相应的索引标题就跳转到相应的段落,那么就只要在标题所在的html标签里面设置一个ID,然后链接过去即可,可以像下面这样设置ID:

我是标题一]@]@]

@我是标题二]@]@]

@我是标题三]@]@]

@然后在索引里面这样设置超链接就可以实现和锚点的连接了

点击我就会跳到第一段

点击我就会跳到第二段

点击我就会跳到第三段

这样你应该就可以理解了吧~~~

问题六:html5里命名锚点有什么作用? 档浏览页面的时候,拉动滚动条到底部,这时若想返回顶部(上面),正好底部有个锚点。这时侯点击锚点就直接到了顶部(上面),这个过程是不需要再出拉动滚动条,html5配合js/或者jq过程就会产生平滑的效果,而不是直接跳到上面。

问题七:转换锚点工具有什么用 当想把红圈这个锚点变成尖角的时候就需要转点工具。

问题八:JS 的锚点(anchor)有什么用? 相当于光标定位到哪里

就是鼠标放到文本框里 一闪一闪的那个东西

问题九:html中锚点怎么用啊,我怎么看不明白啊。 给你写个简单的例子:

以下是标题部分:

第一章

第二章

第三章

以下是内容部分

这是第一章的内容

这是第二章的内容

这是第三章的内容

当然,你中间要留出足够的空间,要不然出不来效果

问题十:AE中,锚点是什么?作用是什么? 这个是中心点,用于控制图像或者是视频的动作中心位置!

1、打开启动Premiere视频剪辑软件,创建一个PR剪辑项目,设置好项目名称等属性设置。

2、在新建的项目窗口右键鼠标,在d出的右键数遍选项中执行新建中的序列命令,来创建一个序列。

3、找到PR工具栏中的钢笔工具,鼠标左键长按这个钢笔工具,打开工具组找到椭圆工具。

4、按住Ctrl+Shift键绘制一个大小合适的正圆出来,并通过效果控件中的形状来设置这个正圆的参数,比如填充与描边等。

5、在效果控件或者是基本图形窗口中找到锚点设置,为锚点设置关键帧,然后移动时间轴在设置锚点位置,做出一个锚点位置移动的关键帧动画。

6、从头开始播放时间轴,查看动画效果,我们会看到图形会随着锚点的运动而运动起来。这样一个图形运动动画就完成了。

上文说到AR的一些基础内容,这篇我们就来把这个demo走一遍,在做的过程中,补充一些ARKit里常用的方法,这样应该会容易理解一些。

本文demo链接

用ARKit追踪地板的平面。取首次追踪到的平面作为参考平面,此时这个平面与地面大致是重合的(这里读者也可以自己通过一些方法提高精准度,笔者就不再继续深入了)。

取现实中的地面上的点,得到它在我们的平面上的坐标,通过坐标计算距离。

2、追踪平面

在上一篇demo上(没看上一篇的可以不看直接创建一个项目,template选argumented reality app就好了)继续。

我们先在viewDidLoad里设置一下debugOptions,作用是显示点位,方便后面看追踪情况。

self.sceneView.debugOptions = ARSCNDebugOptionShowFeaturePoints//显示追踪到的点位

追踪锚点的代理方法:- (void)renderer:(id)renderer didAddNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor,没有设置代理的先设置一下代理

#pragma mark - ARSCNViewDelegate

//添加节点时候调用(当开启平地捕捉模式之后,如果捕捉到平地,ARKit会自动添加一个平地节点)

-(void)renderer:(id)renderer didAddNode:(SCNNode *)node forAnchor:(ARAnchor *)anchor{

if ([anchor isMemberOfClass:[ARAnchor class]]) {

NSLog(@"平地捕捉")

}

// 添加一个3D平面模型,ARKit只有捕捉能力,锚点只是一个空间位置,要想更加清楚看到这个空间,我们需要给空间添加一个平地的3D模型来渲染他

ARPlaneAnchor *planeAnchor = (ARPlaneAnchor *)anchor

//放一个box,长宽为锚点平面的长宽

SCNBox *plane = [SCNBox boxWithWidth:planeAnchor.extent.x height:0.001 length:planeAnchor.extent.z chamferRadius:0]

SCNMaterial *transparentMaterial = [SCNMaterial new]

transparentMaterial = [self materialNamed:@"tron"]

plane.materials = @[transparentMaterial, transparentMaterial, transparentMaterial, transparentMaterial, transparentMaterial, transparentMaterial]

SCNNode *planeNode = [SCNNode nodeWithGeometry:plane]

planeNode.position =SCNVector3Make(planeAnchor.center.x, 0, planeAnchor.center.z)

[node addChildNode:planeNode]

//为了方便看,在锚点处放一个“坐标系”

SCNTube *tubey = [SCNTube tubeWithInnerRadius:0 outerRadius:0.001 height:5]

tubey.firstMaterial.diffuse.contents = [UIColor blackColor]

SCNNode *tubeNodey = [SCNNode nodeWithGeometry:tubey]

tubeNodey.position = SCNVector3Make(0, 2.5, 0)

[node addChildNode:tubeNodey]

SCNTube *tubex = [SCNTube tubeWithInnerRadius:0 outerRadius:0.001 height:5]

tubex.firstMaterial.diffuse.contents = [UIColor whiteColor]

SCNNode *tubeNodex = [SCNNode nodeWithGeometry:tubex]

tubeNodex.position =  SCNVector3Make(0, 0, 0)

tubeNodex.rotation = SCNVector4Make(1, 0, 0, M_PI/2)

[node addChildNode:tubeNodex]

SCNTube *tubez = [SCNTube tubeWithInnerRadius:0 outerRadius:0.001 height:5]

tubez.firstMaterial.diffuse.contents = [UIColor grayColor]

SCNNode *tubeNodez = [SCNNode nodeWithGeometry:tubez]

tubeNodez.position =  SCNVector3Make(0, 0, 0)

tubeNodez.rotation = SCNVector4Make(0, 0, 1, M_PI/2)

[node addChildNode:tubeNodez]

_zeroNode = [[SCNNode alloc]init]

_zeroNode = node

//捕捉到第一个平面之后关闭捕捉

self.arConfiguration.planeDetection = ARPlaneDetectionNone

[self.sceneView.session runWithConfiguration:self.arConfiguration]

//添加第一根随着屏幕移动的杆子

[self handleTap:tapGesture]

// [self insertGeometry]

}

//材质修改,具体可以看这篇http://www.jianshu.com/p/07b96c800a1d

- (SCNMaterial *)materialNamed:(NSString *)name {

NSMutableDictionary *materials = [NSMutableDictionary new]

SCNMaterial *mat = materials[name]

if (mat) {

return mat

}

mat = [SCNMaterial new]

mat.lightingModelName = SCNLightingModelPhysicallyBased

mat.diffuse.contents = [UIImage imageNamed:@"tron-albedo"]

mat.roughness.contents = [UIImage imageNamed:@"tron-albedo"]

mat.metalness.contents = [UIImage imageNamed:@"tron-albedo"]

mat.normal.contents = [UIImage imageNamed:@"tron-albedo"]

mat.diffuse.wrapS = SCNWrapModeRepeat

mat.diffuse.wrapT = SCNWrapModeRepeat

mat.roughness.wrapS = SCNWrapModeRepeat

mat.roughness.wrapT = SCNWrapModeRepeat

mat.metalness.wrapS = SCNWrapModeRepeat

mat.metalness.wrapT = SCNWrapModeRepeat

mat.normal.wrapS = SCNWrapModeRepeat

mat.normal.wrapT = SCNWrapModeRepeat

materials[name] = mat

return mat

}

这里是个坑,一定要选ARHitTestResultTypeExistingPlane这个,并且关掉追踪。

- (NSArray*)hitTest:(CGPoint)point types:(ARHitTestResultType)types此方法会返回空值,返回空值的原因:

ARHitTestResultTypeExistingPlane:手机晃动导致无法确定此平面与重力相垂直

ARHitTestResultTypeExistingPlaneUsingExtent:触碰到点在平面之外,则不返回值。

ARHitTestResultTypeEstimatedHorizontalPlane:正常情况一定会返回值。

#pragma mark - handleTap

- (void) handleTap:(UIGestureRecognizer*)gestureRecognize{CGPoint tapPoint = CGPointMake(redPoint.center.x, redPoint.center.y)NSArray*result = [self.sceneView hitTest:tapPoint types:ARHitTestResultTypeExistingPlane]

if (result.count == 0) {

return

}

// If there are multiple hits, just pick the closest plane

ARHitTestResult * hitResult = [result firstObject]

SCNTube *calculareTube = [SCNTube tubeWithInnerRadius:0 outerRadius:0.01 height:1]

calculareTube.firstMaterial.diffuse.contents = [UIColor colorWithRed:0 green:255 blue:0 alpha:0.6]

_calculateNode = [SCNNode nodeWithGeometry:calculareTube ]

// 设置节点的位置为捕捉到的平地的锚点的中心位置  SceneKit框架中节点的位置position是一个基于3D坐标系的矢量坐标SCNVector3Make

_calculateNode.position =  SCNVector3Make(

hitResult.worldTransform.columns[3].x,

hitResult.worldTransform.columns[3].y+0.5,

hitResult.worldTransform.columns[3].z

)

[self.sceneView.scene.rootNode addChildNode:_calculateNode]

if (cubeNumber >0) {

SCNNode *previousNode

previousNode = self.sceneView.scene.rootNode.childNodes[self.sceneView.scene.rootNode.childNodes.count-2]

previousNode.geometry.firstMaterial.diffuse.contents = [UIColor greenColor]

if (cubeNumber>1) {

SCNNode *currentNode

currentNode = self.sceneView.scene.rootNode.childNodes[self.sceneView.scene.rootNode.childNodes.count-3]

currentNode.geometry.firstMaterial.diffuse.contents = [UIColor redColor]

if (cubeNumber>2) {

SCNNode *oldNode

oldNode = self.sceneView.scene.rootNode.childNodes[self.sceneView.scene.rootNode.childNodes.count-4]

oldNode.geometry.firstMaterial.diffuse.contents = [UIColor whiteColor]

}

[self calculateDistance]

}

}

cubeNumber += 1

}

//让透明的杆子随着摄像头移动在捕捉到的平面上动起来

#pragma mark - ARSessionDelegate

- (void)session:(ARSession *)session didUpdateFrame:(ARFrame *)frame{

if (cubeNumber == 0)  return

CGPoint tapPoint = CGPointMake(redPoint.center.x, redPoint.center.y)NSArray*result = [self.sceneView hitTest:tapPoint types:ARHitTestResultTypeExistingPlane]

if (result.count == 0) {

return

}

// If there are multiple hits, just pick the closest plane

ARHitTestResult * hitResult = [result firstObject]

SCNNode *currentNode

currentNode = [self.sceneView.scene.rootNode.childNodes lastObject]

// 设置节点的位置为捕捉到的平地的锚点的中心位置  SceneKit框架中节点的位置position是一个基于3D坐标系的矢量坐标SCNVector3Make

currentNode.position =  SCNVector3Make(

hitResult.worldTransform.columns[3].x,

hitResult.worldTransform.columns[3].y+0.5,

hitResult.worldTransform.columns[3].z

)

}

//计算距离

-(void)calculateDistance{

CGFloat distance

SCNNode *previousNode

previousNode = self.sceneView.scene.rootNode.childNodes[self.sceneView.scene.rootNode.childNodes.count-3]

SCNNode *currentNode

currentNode = self.sceneView.scene.rootNode.childNodes[self.sceneView.scene.rootNode.childNodes.count-2]

distance = sqrt((previousNode.position.x-currentNode.position.x)*(previousNode.position.x-currentNode.position.x)+(previousNode.position.z-currentNode.position.z)*(previousNode.position.z-currentNode.position.z))

distanceLab.text = [NSString stringWithFormat:@"上两点距离:%f 米",distance]

}

//手势添加杆子方法

#pragma mark - handleTap

- (void) handleTap:(UIGestureRecognizer*)gestureRecognize{

CGPoint tapPoint = CGPointMake(redPoint.center.x, redPoint.center.y)NSArray*result = [self.sceneView hitTest:tapPoint types:ARHitTestResultTypeExistingPlane]

if (result.count == 0) {

return

}

// If there are multiple hits, just pick the closest plane

ARHitTestResult * hitResult = [result firstObject]

SCNTube *calculareTube = [SCNTube tubeWithInnerRadius:0 outerRadius:0.01 height:1]

calculareTube.firstMaterial.diffuse.contents = [UIColor colorWithRed:0 green:255 blue:0 alpha:0.6]

_calculateNode = [SCNNode nodeWithGeometry:calculareTube ]

// 设置节点的位置为捕捉到的平地的锚点的中心位置  SceneKit框架中节点的位置position是一个基于3D坐标系的矢量坐标SCNVector3Make

_calculateNode.position =  SCNVector3Make(

hitResult.worldTransform.columns[3].x,

hitResult.worldTransform.columns[3].y+0.5,

hitResult.worldTransform.columns[3].z

)

[self.sceneView.scene.rootNode addChildNode:_calculateNode]

if (cubeNumber >0) {

SCNNode *previousNode

previousNode = self.sceneView.scene.rootNode.childNodes[self.sceneView.scene.rootNode.childNodes.count-2]

previousNode.geometry.firstMaterial.diffuse.contents = [UIColor greenColor]

if (cubeNumber>1) {

SCNNode *currentNode

currentNode = self.sceneView.scene.rootNode.childNodes[self.sceneView.scene.rootNode.childNodes.count-3]

currentNode.geometry.firstMaterial.diffuse.contents = [UIColor redColor]

if (cubeNumber>2) {

SCNNode *oldNode

oldNode = self.sceneView.scene.rootNode.childNodes[self.sceneView.scene.rootNode.childNodes.count-4]

oldNode.geometry.firstMaterial.diffuse.contents = [UIColor whiteColor]

}

[self calculateDistance]

}

}

cubeNumber += 1

}


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

原文地址: https://outofmemory.cn/tougao/6875546.html

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

发表评论

登录后才能评论

评论列表(0条)

保存