首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么sf::Text类型的对象返回不同的getPosition().y和getLocalBounds().top?

sf::Text类型的对象返回不同的getPosition().y和getLocalBounds().top的原因是因为它们分别表示了不同的坐标系。

getPosition().y返回的是对象在全局坐标系中的y坐标值,即相对于窗口的原点(0,0)的位置。这个坐标系是相对于窗口的,不受对象自身的变换影响。

而getLocalBounds().top返回的是对象在局部坐标系中的顶部位置。局部坐标系是相对于对象自身的原点(0,0)的位置,它受到对象自身的变换(如缩放、旋转)的影响。

因此,如果对象没有经历任何变换,那么getPosition().y和getLocalBounds().top的值应该是相等的。但是如果对象经历了缩放、旋转等变换,那么它们的值就会不同。

对于sf::Text类型的对象,它通常用于显示文本内容,可以进行字体、大小、颜色等的设置。由于文本内容的显示通常需要进行一些变换操作(如缩放、旋转),所以getPosition().y和getLocalBounds().top的值可能会不同。

总结起来,getPosition().y返回的是对象在全局坐标系中的y坐标值,而getLocalBounds().top返回的是对象在局部坐标系中的顶部位置,它们的差异是由于对象自身的变换所导致的。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何从零实现一个词云效果

文本字体样式不同,绘制出来文本也不一样,所以绘制前需要设置一下字体各种属性,比如字号、字体、加粗、斜体等等,可以通过绘图上下文font属性来设置,本文简单起见,只支持字号、字体、加粗三个字体属性...,以坐标为key添加到map对象中。...,容器元素设为相对定位,文本元素设为绝对定位,然后将计算出来位置作为lefttop值,不要忘了设置字号、字体等样式。...如图所示,第一个文本位置为0,0,所以左边上边超出距离就是边界数据中left、top值,那么把词云移入容器,只要整体移动-left、-top距离即可。...有时右侧下方文本会超出容器大小,为了方便查看添加一个背景色: 这是为什么呢,原因可能有两个,一是因为我们获取文本像素时是缩小了文字字号,导致最后放大后存在偏差;二是最后我们对文本宽高也进行了缩放

16710

基于HTML5 Canvas 实现弹出框

Node,当用户鼠标移入移出时, 1、控制Node隐藏显示可以达到弹框效果; 2、鼠标位置改变伴随着Node位置改变; 3、鼠标移入到不同对象上时,Node上贴图也跟着发生变化; 4、Node...,已经在前面详细阐述,其中,弹框中属性值更新是将JSON文件text属性进行数据绑定,绑定格式很简单,只需将以前参数值用一个带func属性对象替换即可,func内容有一下几种类型: 1...、function类型,直接调用该函数,并传入相关Dataview对象,由函数返回值决定参数值,即func(data, view);调用。...2、string类型:       style@***开头,则返回data.getStyle(***)值,其中***代表style属性名。      ...***值,其中***代表attr属性名。       如果不匹配以上几种情况,则直接将string类型作为data对象函数名调用data***(view),返回值作为参数值。

2.8K30

基于HTML5 Canvas 实现弹出框

Node,当用户鼠标移入移出时, 1、控制 Node 隐藏显示可以达到弹框效果; 2、鼠标位置改变伴随着 Node 位置改变; 3、鼠标移入到不同对象上时, Node 上贴图也跟着发生变化...,已经在前面详细阐述,其中,弹框中属性值更新是将 JSON 文件 text 属性进行数据绑定,绑定格式很简单,只需将以前参数值用一个带 func 属性对象替换即可,func 内容有一下几种类型...: 1、function类型,直接调用该函数,并传入相关 Data view 对象,由函数返回值决定参数值,即 func(data, view);调用。...2、string类型:       style@***开头,则返回 data.getStyle(***)值,其中***代表 style 属性名。      ...如果不匹配以上几种情况,则直接将 string 类型作为 data 对象函数名调用 data***(view),返回值作为参数值。

3.4K70

用机器学习打造聊天机器人(四) 代码篇

).T print("similarity.shape %s" % similarity.shape) return similarity chatterbot训练 本项目里,作者把训练语料类型分成了闲聊业务两大类...,下面你会看到很多SF关键字,就是指业务,至于为什么SF,是历史遗留(lan)问题,不必过于纠结。...闲聊类目前我们不拆分,所以代码上面介绍chatterbot时候代码类似,但是对于业务类样本,由于我们需要分成多个类型,所以这里要创建多个chatterbot实例,下面展示是业务类chatbot..._")] chatters = {} bot_name = current_app.config['DATABASE'] # 根据不同类型,创建不同ChatBot...jiabao512859468)获取,有任何相关技术问题,都欢迎作者探讨O(∩_∩)O~ 本篇就这么多内容啦~,下一篇将介绍如何将聊天机器人项目应用到不同业务领域,以及如何接入其他项目中,ok,感谢阅读

1.3K20

用机器学习打造聊天机器人(四) 代码篇

:param statement_vec: 句子样本特征向量,是一个二维list :return: 输入句子各句子样本相似度构成二维数组 """ statement_text_vec...print("similarity.shape %s" % similarity.shape) return similarity chatterbot训练 本项目里,作者把训练语料类型分成了闲聊业务两大类...,下面你会看到很多SF关键字,就是指业务,至于为什么SF,是历史遗留(lan)问题,不必过于纠结。...闲聊类目前我们不拆分,所以代码上面介绍chatterbot时候代码类似,但是对于业务类样本,由于我们需要分成多个类型,所以这里要创建多个chatterbot实例,下面展示是业务类chatbot..._")] chatters = {} bot_name = current_app.config['DATABASE'] # 根据不同类型,创建不同ChatBot

71730

js获取元素到文档区域document(横向、纵向)坐标的两种方法

返回是一个对象,该对象有四个属性:top,left,right,bottom;该方法原本是IE Only,但是FF3.0+Opera9.5+已经支持了该方法,可以说在获得页面元素位置上效率有很大提高...(), _x = rec.left, // 获取元素相对浏览器视窗window左、上坐标 _y = rec.top; // 与html或body元素滚动距离相加就是元素相对于文档区域document...| dc.body.scrollTop; return { left: _x, top: _y }; } 经测试,该方法与第一种方法获取元素相对于document坐标大小相同,对于IE低版本浏览器,存在一些差异...结语:上文已对如何获取元素相对于文档区域document坐标位置做出了阐述,如遇到相关问题,可联系本人或直接发表评论,另外,对于右坐标right以及下坐标bottom获取只需把left、top坐标的大小元素本身宽度...ps:补充一点,利用该方法返回对象right-left = 元素宽度;bottom-top = 元素高度。可以获取不带边框元素本身宽度高度。

2.6K30

【JS】332- 为什么我更喜欢对象而不是 switch 语句

正文从这里开始~~~ 最近(或者不是最近,这完全取决于您什么时候阅读这边文章),我正在跟我团队伙伴讨论如何去处理这种需要根据不同值去处理不同情况方法,通常对于这种情况下,人们喜欢使用 switch...,其可能性是无穷无尽…… 不管怎样,switch 语句已经讲够了,我们来这里是为了讨论一种不同方法,我们来这里是为了讨论对象。...使用字符串 让我们从简单 switch 示例开始,让我们假设我们需要有条件地保存返回一个字符串情景,并使用我们对象: const getPosition = position => {...使用布尔值 我喜欢创建返回类型一致函数, 但是, 由于 javascript 是动态类型语言,因此可能存在函数可能返回动态类型情况,因此我将在此示例中考虑这一点,如果找不到键,我将创建一个返回布尔值...我认为我们应该更关心为什么我们需要一个返回布尔值,未定义值或字符串函数,这里存在严重不一致性,无论如何,对于这样一个非常棘手情况这也只是一个可能解决方案。

1.3K40

【愚公系列】2024年01月 GDI+绘图专题 DrawString

《近期荣誉》:2022年CSDN博客之星TOP2,2022年华为云十佳博主等。...我们创建了一个Graphics对象g,然后定义了文本字符串,字体,笔刷位置,以及一个StringFormat对象。我们通过在SetTabStops方法中指定像素值百分比值来设置制表位。...运行上述代码后,将看到绘制了“HatchBrush Test”文本图片,文本字体颜色为绿黄相间格子状。 此外,还可以使用其他类型Brush对象来为绘制文本添加不同效果。...7.StringFormat DrawString方法有多个重载,其中一个参数是StringFormat类型格式化对象。StringFormat对象可以设置文本对齐方式、行距、字间距等等。...可以通过设置StringFormat对象其他属性,来实现不同文本效果,例如设置Trimming属性来裁剪超出矩形区域文本,设置TabStops属性来实现文本制表符对齐等等。

29111

整合单细胞空转数据多种方法之R包semla

Run NNLS 使用RunNNLS()函数,输入单细胞数据空转数据,指定单细胞细胞类型标签名称,即可运行NNLS反卷积: DefaultAssay(brain_st_cortex) <- "Spatial...= "<em>top</em>", label.x = 16, label.y = 1) image-20240419203656828 .丰度较低星形胶质细胞: library...= "top", label.x = 7, label.y = 1) image-20240419203731108 尽管两种算法相关性非常好,但是可以看到...我们还可以使用semla内置函数MapMultipleFeatures()在同一张slide里可视化多种细胞类型分布情况(cell2location也有类似功能),但是需要先将seurat对象转换为...通过计算不同细胞类型之间成对相关性,我们可以了解哪些细胞类型经常出现在相同spot上: cor_matrix <- FetchData(semla.data, selected_celltypes)

16410

基于HTML5快速搭建TP-LINK电信拓扑设备面板

之前我们要创建一个图形界面,不光需要在CSS样式中定义miantop、left,还需要对window对象resize事件进行监听等等,所以我们新增addToDOM()帮您做好这一系列事情,可以看看源代码中实现方式...需要制定矢量类型为shape,其形状主要由pointssegments这两个属性描述:      points为ht.List类型数组顶点信息,顶点为{x: 100, y:200}格式对象; segments...为ht.List类型线段数组信息,线段为1~5整数,分别代表不同顶点连接方式,segments主要用于绘制曲线,或者有跳跃断点情况,其1~5取值含义如下: 1:moveTo,占用一个点信息...HT默认提供是直线多点连线,但是在绘制流程图、组织结构图思维导图等应用还需要更多连线类型,  详情戳HT for Web连线类型手册(http://www.hightopo.com/guide/...在我们Demo中,两条连接服务器TP-LINK曲线,均是使用自定义新连线类型

1.3K100
领券