锚就是在文档中设置位置标记,并给该位置一个名称,以便引用。通过创建锚点,可以使链接指向当前文档或不同文档中的指定位置。锚点常常被用来跳转到特定的主题或文档的顶部,使访问者能够快速浏览到选定的位置,加快信息检索速度。
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
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)