墙体数据处理方法、构件创建方法、电子设备及存储介质
文献发布时间:2024-01-17 01:28:27
技术领域
本公开涉及一种墙体数据处理方法、构件创建方法、电子设备及存储介质。
背景技术
在家装设计领域中,往往需要处理多种吸附墙体的构件,比如门、窗、门洞等。设计师在设计时,往往需要首先找到合法放置构件的墙体,然后放置构件,再手动调整构件与墙体的方向平行,最后在整体设计完成后还需对构件进行尺寸上的微调,构件设计流程复杂,十分影响设计师的工作效率。此外,由于户型数据中墙线的排布规则不明确,房间布局复杂多变,设计师往往需要凭借自己的经验来完成构件的设计,因而常出现构件放置位置不合理、构件参数不符合规范等问题。
因此,如何使用计算机对复杂户型进行处理和分析以简化构件的设计过程,显得尤为重要。
发明内容
为了解决上述技术问题中的至少一个,本公开提供了一种墙体数据处理方法、构件创建方法、装置、电子设备及存储介质。
根据本公开的一个方面,提供了一种墙体数据处理方法,包括:获取对象的户型参数,所述户型参数至少包括:对象的墙体参数;根据对象的墙体参数生成对象的墙线数据,所述墙线数据包括对象的各条墙线上的墙线线段的信息,每条墙线线段的信息用于指示所述墙线线段的类别、位置和方向;利用对象的墙线数据进行吸附线检测处理以生成所述对象的吸附线数据,所述吸附线数据包括对象墙体内吸附线段的信息,所述吸附线段至少用于创建构件。
本公开的一些实施方式中,所述墙线线段的类别包括:内墙线和外墙线;所述对象墙体内的吸附线段包括内墙线间的吸附线段和内墙线与外墙线之间的吸附线段。
本公开的一些实施方式中,每条吸附线段的信息用于指示所述吸附线段的长度、位置、方向及其墙体厚度。
本公开的一些实施方式中,所述吸附线检测处理包括:根据第一墙线线段的信息和第二墙线线段的信息确定第一墙线线段与第二墙线线段是否形成墙体;在第一墙线线段与第二墙线线段形成墙体时,根据第一墙线线段的信息和第二墙线线段的信息生成第一吸附线段的信息。
本公开的一些实施方式中,根据第一墙线线段的信息和第二墙线线段的信息确定第一墙线线段与第二墙线线段是否形成墙体,包括:根据第一墙线线段的信息和第二墙线线段的信息,验证第一墙线线段和第二墙线线段是否满足预先配置的墙体形成条件,在第一墙线线段与第二墙线线段满足所述墙体形成条件时确认所述第一墙线线段与第二墙线线段形成墙体;其中,所述墙体形成条件包括:第一墙线线段与第二墙线线段平行;第一墙线线段与第二墙线线段均属于内墙线时方向不同;第一墙线线段在第二墙线线段上的投影与第二墙线线段交叉;线段间距小于预定的墙体厚度阈值;第一墙线线段位于第二墙线线段的指定侧。
本公开的一些实施方式中,所述根据第一墙线线段的信息和第二墙线线段的信息生成第一吸附线段的信息,包括:确定第一墙线线段与第二墙线线段之间的中线线段,以所述中线线段作为所述第一吸附线段;其中,所述中线线段的长度根据第一墙线线段在第二墙线线段上的投影长度确定,所述中线线段的端点位置根据第一墙线线段的端点位置和第二墙线线段的端点位置确定。
根据本公开的一个方面,提供了一种构件创建方法,包括:获取对象的吸附线数据,所述吸附线数据包括对象墙体内吸附线段的信息;检测当前触摸点的位置;根据当前触摸点的位置和所述对象的吸附线数据,确定用于放置构件的吸附线段并在所述吸附线段上创建构件。
本公开的一些实施方式中,每条吸附线段的信息用于指示所述吸附线段的长度、位置、方向及其墙体厚度;所述根据当前触摸点的位置和所述对象的吸附线数据,确定用于放置构件的吸附线段并在所述吸附线段上创建构件,包括:通过估算当前触摸点到各吸附线段的距离来确定用于放置构件的吸附线段;确定当前触摸点在所述吸附线段上的投影位置,并在所述投影位置创建构件;根据所述吸附线段的方向设置所述构件的方向以使所述构件的方向与墙体方向平行;根据所述吸附线段的墙体厚度设置所述构件的宽度以使所述构件的尺寸与墙体匹配。
本公开的一些实施方式中,所述通过估算当前触摸点到各吸附线段的距离来确定用于放置构件的吸附线段,包括:计算当前触摸点到各条吸附线段的距离,按照距离从小到大对吸附线段排序,选择排序在首位的吸附线段作为放置构件的吸附线段。
本公开的一些实施方式中,所述构件为如下之一:门、窗户、门洞。
本公开的一个方面,提供了一种墙体数据处理装置,包括:参数获取单元,用于获取对象的户型参数,所述户型参数至少包括:对象的墙体参数;墙线单元,用于根据对象的墙体参数生成对象的墙线数据,所述墙线数据包括对象的各条墙线上的墙线线段的信息,每条墙线线段的信息用于指示所述墙线线段的类别、位置和方向;吸附线单元,用于利用对象的墙线数据进行吸附线检测处理以生成所述对象的吸附线数据,所述吸附线数据包括对象墙体内吸附线段的信息,所述吸附线段至少用于创建构件。
本公开的一个方面,提供了一种构件创建装置,包括:数据获取单元,用于获取对象的吸附线数据,所述吸附线数据包括对象墙体内吸附线段的信息;触摸点检测单元,用于检测当前触摸点的位置;构件编辑单元,用于根据当前触摸点的位置和所述对象的吸附线数据,确定用于放置构件的吸附线段并在所述吸附线段上创建构件。
根据本公开的一个方面,提供了一种电子设备,包括:存储器,所述存储器存储执行指令;以及处理器,所述处理器执行所述存储器存储的执行指令,使得所述处理器执行上述的墙体数据处理方法和/或构件创建方法。
根据本公开的一个方面,提供了一种可读存储介质,所述可读存储介质中存储有执行指令,所述执行指令被处理器执行时用于实现上述的墙体数据处理方法和/或构件创建方法。
根据本公开的一个方面,提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现上述的墙体数据处理方法和/或构件创建方法。
本公开实施例的墙体数据处理方法能够利用对象的户型参数自动完成吸附线检测并生成吸附线数据,吸附线段可以视为构件合法位置的集合,因此,无需设计师再手动选择构件位置,可以简化构件设计流程,提升构件设计效率,同时避免诸如构件放置位置不合理等问题。
本公开实施例的构件创建方法,能够自动找到构件位置、创建构件、自适应生成相应的构件形状,无需设计师输入坐标旋转等具体参数,也无需进行后续调整,可以简化构件设计流程,减少设计师的操作次数,在很大程度上提升了设计师的工作效率,同时还可避免诸如构件参数不符合规范等问题。
附图说明
附图示出了本公开的示例性实施方式,并与其说明一起用于解释本公开的原理,其中包括了这些附图以提供对本公开的进一步理解,并且附图包括在本说明书中并构成本说明书的一部分。
图1是根据本公开的一个实施方式的墙体数据处理方法的流程示意图。
图2是根据本公开的一个实施方式的一对象的墙线示意图。
图3是图2所示示例的墙线线段划分示意图。
图4是图3所示对象的内墙线L1上的吸附线段示意图。
图5是图3所示对象的墙线线段A和墙线线段M之间吸附线段的示意图。
图6是图3所示对象的墙线线段B和墙线线段N之间吸附线段的示意图。
图7是图3所示对象墙体内所有吸附线段的示意图。
图8是根据本公开的一个实施方式的构件创建方法的流程示意图。
图9是根据本公开的一个实施方式的采用处理系统的硬件实现方式的墙体数据处理装置的示例图。
图10是根据本公开的一个实施方式的采用处理系统的硬件实现方式的构件创建装置的示例图。
具体实施方式
下面结合附图和实施方式对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施方式仅用于解释相关内容,而非对本公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本公开相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施方式及实施方式中的特征可以相互组合。下面将参考附图并结合实施方式来详细说明本公开的技术方案。
除非另有说明,否则示出的示例性实施方式/实施例将被理解为提供可以在实践中实施本公开的技术构思的一些方式的各种细节的示例性特征。因此,除非另有说明,否则在不脱离本公开的技术构思的情况下,各种实施方式/实施例的特征可以另外地组合、分离、互换和/或重新布置。
在附图中使用交叉影线和/或阴影通常用于使相邻部件之间的边界变得清晰。如此,除非说明,否则交叉影线或阴影的存在与否均不传达或表示对部件的具体材料、材料性质、尺寸、比例、示出的部件之间的共性和/或部件的任何其它特性、属性、性质等的任何偏好或者要求。此外,在附图中,为了清楚和/或描述性的目的,可以夸大部件的尺寸和相对尺寸。当可以不同地实施示例性实施例时,可以以不同于所描述的顺序来执行具体的工艺顺序。例如,可以基本同时执行或者以与所描述的顺序相反的顺序执行两个连续描述的工艺。此外,同样的附图标记表示同样的部件。
当一个部件被称作“在”另一部件“上”或“之上”、“连接到”或“结合到”另一部件时,该部件可以直接在所述另一部件上、直接连接到或直接结合到所述另一部件,或者可以存在中间部件。然而,当部件被称作“直接在”另一部件“上”、“直接连接到”或“直接结合到”另一部件时,不存在中间部件。为此,术语“连接”可以指物理连接、电气连接等,并且具有或不具有中间部件。
本文使用的术语是为了描述具体实施例的目的,而不意图是限制性的。如这里所使用的,除非上下文另外清楚地指出,否则单数形式“一个(种、者)”和“所述(该)”也意图包括复数形式。此外,当在本说明书中使用术语“包含”和/或“包括”以及它们的变型时,说明存在所陈述的特征、整体、步骤、操作、部件、组件和/或它们的组,但不排除存在或附加一个或更多个其它特征、整体、步骤、操作、部件、组件和/或它们的组。还要注意的是,如这里使用的,术语“基本上”、“大约”和其它类似的术语被用作近似术语而不用作程度术语,如此,它们被用来解释本领域普通技术人员将认识到的测量值、计算值和/或提供的值的固有偏差。
图1是根据本公开的一个实施方式的墙体数据处理方法的流程示意图。如图1所示,本公开实施例的墙体数据处理方法可以包括如下的步骤S102~步骤S106:步骤S102,获取对象的户型参数。
户型参数可以由设计师输入,设计师可以通过实际测量或者参考对象的建筑图纸等方式得到对象的户型参数,对象的户型参数至少可以包括对象的墙体参数,例如,对象的墙体参数可以包括但不限于对象内各个墙体的长宽高、厚度等。此外,对象的户型参数中还可以包括对象的其他结构参数。对于户型参数的具体内容,本公开实施例不作限制。
对象可以是但不限于待装修的建筑,例如房屋、厂房等等。
步骤S104,根据对象的墙体参数生成对象的墙线数据。
其中,所述墙线数据包括对象的各条墙线上的墙线线段的信息,每条墙线线段的信息可以用于指示墙线线段的类别、位置和方向。
墙线线段的类别可以根据需要灵活配置。鉴于吸附线可以分为内墙线自卷绕形成和内墙线与其他墙线形成两大类,本公开实施例中墙线线段的类别可以包括内墙线和外墙线,内墙线为对象内部的墙线,外墙线为对象外部的墙线。
步骤S104中,对象墙体内的吸附线段可以包括但不限于内墙线间的吸附线段和内墙线与外墙线之间的吸附线段。参见下文图6的示例,内墙线间的吸附线段为内墙线上不同墙线线段之间的吸附线段,内墙线与外墙线之间的吸附线段则是内墙线上的墙线线段与外墙线的墙线线段之间的吸附线段。
一些实施方式中,步骤S104中生成墙线数据的过程可以包括:首先,读取对象的户型参数,加载所有的墙线;其次,将所有的墙线分为内墙线、外墙线两类,并保证其顺时针进行卷绕。最后,将对象内部空间中各条闭合的内墙线L1划分为墙线线段,将各条闭合的外墙线划分为墙线线段,并生成这些墙线线段的信息,每条墙线线段的信息可以包括指示墙线线段位置与方向的位置向量和指示墙线线段的墙体厚度的第一参数,位置向量的起点为墙线线段沿墙线卷绕方向的起始端点,位置向量的终点为墙线线段沿墙线卷绕方向的结束端点,向量的方向为沿墙线卷绕方向。位置向量可以包括墙线线段上所有点的位置坐标、或者墙线线段上部分关键点的位置坐标、或者墙线线段端点的位置坐标等。这里,位置坐标可以是预先选定的二维直角坐标系中的坐标,对于二维直角坐标系的选择,本公开实施例不作限制。
需要说明的是,上述生成墙线数据的过程仅作为示例。具体应用中,可以根据需要采用其他任何可适用的方式来生成墙线数据,墙线数据的表示方式也可以根据需要灵活设置,对此,本公开实施例不作限制。
图2示出了某对象的墙线示意图。图2的示例中,最外侧的4条线段组成了外墙线L3,内部两条闭合的墙线分别是内墙线L1、L2,箭头方向表示墙线的卷绕方向。墙线线段的方向即为其所属墙线的卷绕方向。
图3示出了图2所示示例的墙线线段划分示意图。如图3所示,墙线线段A、B、C、D、E、F、G、H组成了内墙线L1,墙线线段I、J、K、L组成了内墙线L2,墙线线段M、N、O、P组成了外墙线L3。箭头方向表示墙线的卷绕方向,也指示了墙线线段的方向。
步骤S106,利用对象的墙线数据进行吸附线检测处理以生成对象的吸附线数据。
其中,吸附线数据可以包括对象墙体内吸附线段的信息,吸附线段至少可以用于创建构件。该构件可以是但不限于诸如门、窗、门洞等各种墙体嵌入式的构件。对象墙体内的所有吸附线段是墙体嵌入构件在对象上的所有合法位置的集合。当然,吸附线段还可用于创建或设置其他类型的构件,对此,本公开实施例不作限制。
一些实施方式中,每条吸附线段的信息用于指示吸附线段的长度、位置、方向及其墙体厚度。
由于吸附线位于墙体内部,也即,能够形成墙体的墙线线段之间必然存在吸附线,若两条墙线线段不能形成墙体则表明其间必然不存在吸附线。因此,步骤S106中的吸附线检测处理为:基于对象的墙线数据检测形成墙体的墙线线段对,利用这些墙线线段对来确定吸附线段并生成相应的吸附线段信息。
具体地,步骤S106中的吸附线检测处理可以包括如下的步骤a1~步骤a2:步骤a1,根据第一墙线线段的信息和第二墙线线段的信息确定第一墙线线段与第二墙线线段是否形成墙体;步骤a2,在第一墙线线段与第二墙线线段形成墙体时,根据第一墙线线段的信息和第二墙线线段的信息生成第一吸附线段的信息。
步骤S106中,若第一墙线线段与第二墙线线段未能形成墙体,说明第一墙线线段与第二墙线线段之间不存在吸附线,则无需生成相应的吸附线段信息。
其中,第一墙线线段是指对象的任意一条墙线线段,第二墙线线段是指对象中除第一墙线线段之外的任意一条墙线线段,第一吸附线段是指位于第一墙线线段与第二墙线线段之间的吸附线段。第一墙线线段与第二墙线线段的类别可以相同,也可以不同。例如,第一墙线线段与第二墙线线段可以均属于内墙线。又例如,第一墙线线段可以为内墙线,第二墙线线段可以为外墙线。需要说明的是,由于外墙线之间不存在吸附线,因此,第一墙线线段与第二墙线线段不可能同属于外墙线。
一些实施方式中,步骤a1可以包括:根据第一墙线线段的信息和第二墙线线段的信息,验证第一墙线线段和第二墙线线段是否满足预先配置的墙体形成条件,在第一墙线线段与第二墙线线段满足墙体形成条件时确认第一墙线线段与第二墙线线段形成墙体,该墙体形成条件可以包括但不限于:1)第一墙线线段与第二墙线线段平行;2)若第一墙线线段与第二墙线线段均属于内墙线时方向不同;3)第一墙线线段在第二墙线线段上的投影与第二墙线线段交叉;4)线段间距小于预定的墙体厚度阈值;5)第一墙线线段位于第二墙线线段的指定侧。其中,指定侧可以是以第一墙线线段方向为基准、第二墙线线段的左侧或者右侧。
具体地,可以根据第一墙线线段的位置向量计算第一墙线线段的斜率,根据第二墙线线段的位置向量计算第二墙线线段的斜率,若第一墙线线段的斜率与第二墙线线段的斜率数值相等,则表明第一墙线线段与第二墙线线段平行。若第一墙线线段的斜率与第二墙线线段的斜率数值不相等,则表明第一墙线线段与第二墙线线段不平行。
具体地,若第一墙线线段的斜率与第二墙线线段的斜率均为正值或均为负值,则表明第一墙线线段与第二墙线线段方向相同,若第一墙线线段的斜率与第二墙线线段的斜率为一正一负,则表明第一墙线线段与第二墙线线段方向不同。
验证第一墙线线段与第二墙线线段满足条件1)~2)后,可以沿垂直于第一墙线线段方向将第一墙线线段上的各个点向第二墙线线段投影,若第一墙线线段上的任意一个或多个点在第二墙线线段的投影点与第二墙线线段的相应点重合则说明第一墙线线段在第二墙线线段上的投影与第二墙线线段交叉,否则说明第一墙线线段在第二墙线线段上的投影与第二墙线线段不存在交叉。
其中,沿垂直于第一墙线线段方向将第一墙线线段上的各个点向第二墙线线段投影的过程可以是:设第一墙线线段上的点为P,第二墙线线段的起点为A、终点为B,通过下式(1)计算线段AB的方向向量V,通过下式(2)计算点P到线段起点A的向量W,通过下式(3)~(4)计算点P到第二墙线线段AB的垂足H的坐标,垂足H即为点P到第二墙线线段AB的投影点,若垂足H的坐标在第二墙线线段AB上则表明点P的投影点与第二墙线线段的相应点重合。
V = (B - A) = (x
W = (P - A) = (x - x
H = A + t * V (3)
t = (W · V) / (V · V) (4)
其中,(x
验证第一墙线线段与第二墙线线段满足条件1)~3)后,可以根据点到直线的距离计算公式计算第一墙线线段上任意一点到第二墙线线段的距离,该距离即为第一墙线线段与第二墙线线段的间距,判断第一墙线线段与第二墙线线段的间距是否小于或等于预先设定的墙体厚度阈值,如果是,则满足条件4),否则不满足条件4)。这里,墙体厚度阈值可以根据实际场景灵活设定。例如,可以根据当地建筑标准中规定的墙体厚度要求来设置该墙体厚度阈值。
验证第一墙线线段与第二墙线线段满足条件1)~4)后,可以通过如下方式验证“第一墙线线段是否位于第二墙线线段的指定侧”:设第二墙线线段上点A的坐标为 (x
一些实施方式中,步骤a2中可以包括:确定第一墙线线段与第二墙线线段之间的中线线段,以中线线段作为第一吸附线段。其中,中线线段的长度可以根据第一墙线线段在第二墙线线段上的投影长度确定,中线线段的端点位置根据第一墙线线段的端点位置和第二墙线线段的端点位置确定。
具体地,可以取第一墙线线段向第二墙线线段的投影长度作为第一吸附线段的长度,也即,将第一墙线线段投影到第二墙线线段上计算两者重合部分的长度,该长度即为第一吸附线段的长度。取第一墙线线段与第二墙线线段之间的中线位置作为第一吸附线的位置。取第一墙线线段与第二墙线线段中属于内墙线的一条墙线线段的方向作为第一吸附线的方向。若第一墙线线段与第二墙线线段均属于内墙线,则可以取其中任意一条或两条墙线线段的方向作为第一吸附线的方向。
以下文图4为例,内墙线L1上的吸附线段位于墙线线段C与墙线线段E之间,该吸附线段长度为墙线线段C在墙线线段E上的投影长度,吸附线段的位置为墙线线段C与墙线线段E之间的中线位置,吸附线段的方向为墙线线段C和/或墙线线段E的方向。
以下文图7为例,对于内墙线L1上的墙线线段F与外墙线L3上的墙线线段N之间的吸附线段,其长度为墙线线段F在墙线线段N上的投影长度,其位置为墙线线段F与墙线线段N之间的中线位置,其方向为墙线线段F的方向。
具体地,第一墙线线段与第二墙线线段之间的中线线段可以是第一墙线线段与第二墙线线段之间的中心线、三分之一中线或者四分之一中心等,对此,本公开实施例不作限制。
其中,第一吸附线的位置包括第一吸附线段上所有点的位置坐标、第一吸附线段上选定点的位置坐标或者第一吸附线段上端点的位置坐标等。例如,假设以第一墙线线段与第二墙线线段之间的中心线作为其吸附线段,基于几何中心线的定义通过第一墙线线段的位置向量和第二墙线线段的位置向量即可得到第一吸附线段的位置。
具体应用中,可以先分别对各条内墙线上的墙线线段进行吸附线检测以找到各条内墙线上的吸附线段,再在属于不同空间的内墙线之间、内墙线与外墙线之间进行吸附线检测以找到内墙线与外墙线上的吸附线段,如此,可以准确高效且无遗漏的找到对象墙体内的所有吸附线段。
以图3为例,可以先针对内墙线L1上的各条墙线线段进行吸附线检测,具体地:首先选取线段A、并从墙线线段B、C、D、E、F、G、H中分别使用上述算法寻找符合墙体形成条件的墙线线段,经过检测发现,尽管墙线线段C、G满足上述的条件1)~3),但由于墙线线段A和墙线线段C的间距、墙线线段A和墙线线段G的间距均大于预先设定的墙体厚度阈值,不满足条件4),内墙线L1中没有与墙线线段A组成墙体的墙线线段。接着,继续对墙线线段B进行检测,经验证发现墙线线段C、D、E、F、G、H均不完全符合上述条件 1)~5),内墙线L1中没有与墙线线段B组成墙体的墙线线段。接着,继续对墙线线段C进行吸附线检测,经验证发现墙线线段E完全满足上述条件1~5),因此,墙线线段C和墙线线段E会生成内墙线自卷绕形成的吸附线段。如此类推,继续对墙线线段D、E、F、G、H进行检测,均未发现有符合墙体形成条件的墙线线段。如此,通过遍历内墙线L1中所有墙线线段,分别对其进行吸附线检测,找到了内墙线L1上的吸附线段。图4示出了内墙线L1上吸附线段(即,墙线线段C和墙线线段E之间吸附线段)的示意图。
同理,遍历内墙线L2中所有墙线线段,分别对其进行吸附线检测,发现内墙线L2上不同墙线线段间不存在吸附线。
以图3为例,寻找不同封闭空间的内墙线之间、内墙线与外墙线之间的吸附线段的过程可以包括:仍从墙线线段A开始检测,外墙线和其他封闭空间的内墙线中的墙线线段有墙线线段I、J、K、L、M、N、O、P,分别验证这些墙线线段与墙线线段A是否满足上述的墙体形成条件,经验证发现墙线线段A和墙线线段M满足上述的墙体形成条件,墙线线段A和墙线线段M之间形成了墙体,在其间生成如图5所示吸附线段。
接着,继续对墙线线段B进行上述检测,经验证发现墙线线段N和墙线线段B完全符合上述的墙体形成条件,墙线线段B和墙线线段N之间形成了墙体,则在其间生成如图6所示吸附线段。
接下来,继续选取其他墙线线段进行上述检测,找到对象墙体内的所有吸附线段。图7示出了图3所示对象墙体内所有吸附线段的示意图。
本公开实施例的墙体数据处理方法,能够通过分析对象的户型参数自动检测对象墙体内的所有吸附线段并生成相应的吸附线数据,这些吸附线段可以视为墙体嵌入构件在对象内部的所有合法位置的集合,这样,即使户型布局复杂、布线规则不明确,也可准确高效地找到构件的合法位置,无需设计师手动选择构件位置,可以简化构建设计流程,提高设计师的工作效率,同时还可有效避免构件位置不合理等问题。
图8示出了本公开实施例的构件创建方法的流程示意图。如图8所示,一些实施方式的构件创建方法可以包括如下步骤:步骤S802,获取对象的吸附线数据,吸附线数据包括对象墙体内吸附线段的信息。
可以通过前述墙体数据处理方法来获取对象的吸附线数据,并将对象的吸附线数据保存,在需要创建构件时可以通过读取这些吸附线数据来完成构件的自动创建。
步骤S804,检测当前触摸点的位置。
触摸点可以是但不限于设计师等用户在支持构件创建的交互设计界面上随机选中的点或者光标停留超过一定时长的点。
具体应用中,可以通过跟踪光标并实时获取其屏幕位置的方式来检测得到触摸点的位置。若检测到的触摸点位置为屏幕位置,可以通过坐标转换或其他类似的方式将触摸点位置转换到交互设计界面下的二维直角坐标系下,以找到当前触摸点在吸附线段所属坐标系下的位置。
步骤S806,根据当前触摸点的位置和对象的吸附线数据,确定用于放置构件的吸附线段并在吸附线段上创建构件。
一些实施方式中,步骤S806可以包括如下的步骤b1~步骤b4:步骤b1,通过估算当前触摸点到各吸附线段的距离来确定用于放置构件的吸附线段。
一些实施方式中,可以选择与当前触摸点距离最近的吸附线段作为放置构件的吸附线段。具体地,可以计算当前触摸点到各条吸附线段的距离,按照距离从小到大对吸附线段排序,选择排序在首位的吸附线段作为放置构件的吸附线段。
步骤b2,确定当前触摸点在吸附线段上的投影位置,并在投影位置创建构件。
一些实施方式中,可以通过寻找当前触摸点在吸附线段上的垂足位置来确定其投影位置。具体地,以当前触摸点为起点向吸附线段做垂线,垂足为点G,则点G的位置即为当前触摸点在吸附线段上的投影位置,将点G的位置坐标作为构件的位置坐标。
步骤b3,根据吸附线段的方向设置构件的方向以使构件的方向与墙体方向平行。
由于吸附线段的方向以其对应的内墙线上的墙线线段方向为准,因此,在创建例如门等构件时,可以沿吸附线段的方向来设置该构件的旋转打开方向,旋转打开方向的角度可以自动计算或者取预先设定的经验值,以使得类似构件的方向与墙体方向平行,同时向室内旋转打开。如此,便可通过自动调整构件方向来确保构件参数符合设计规范,无需设计师输入旋转等具体参数。
步骤b4,根据吸附线段的墙体厚度设置构件的宽度以使构件的尺寸与墙体匹配。
例如,可以将例如门、门洞的构件的宽度设置为吸附线段的墙体厚度,如此,便可通过自动调整构件宽度来确保构件参数符合设计规范。
在设计师移动光标的过程中,可以通过跟踪光标来实时执行前述的构件创建方法来自动完成对象内部所有构件的创建。
本公开实施例的上述构件创建方法,可以自动找到构件位置、创建构件、自适应生成相应的构件形状,并且保持构件的宽与墙体的宽度相同,构件的方向与墙体方向平行,无需设计师输入坐标旋转等具体参数,也无需进行后续调整,可以简化构件设计流程,减少设计师的操作次数,在很大程度上提升了设计师的工作效率,同时还可避免诸如构件参数不符合规范等问题。
本公开实施例的上述构件可以是但不限于门、窗、门洞等墙体嵌入式构件,还可以是其他类型的构件,对此,本公开实施例不作限制。
图9示出了采用处理系统的硬件实现方式的墙体数据处理装置示例图。图10示出了采用处理系统的硬件实现方式的构件创建装置示例图。
上述装置可以包括执行上述流程图中各个或几个步骤的相应模块。因此,可以由相应模块执行上述流程图中的每个步骤或几个步骤,并且该装置可以包括这些模块中的一个或多个模块。模块可以是专门被配置为执行相应步骤的一个或多个硬件模块、或者由被配置为执行相应步骤的处理器来实现、或者存储在计算机可读介质内用于由处理器来实现、或者通过某种组合来实现。
该硬件结构可以利用总线架构来实现。总线架构可以包括任何数量的互连总线和桥接器,这取决于硬件的特定应用和总体设计约束。总线1100将包括一个或多个处理器1200、存储器1300和/或硬件模块的各种电路连接到一起。总线1100还可以将诸如外围设备、电压调节器、功率管理电路、外部天线等的各种其它电路1400连接。
总线1100可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,Peripheral Component)总线或扩展工业标准体系结构(EISA,Extended Industry Standard Component)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,该图中仅用一条连接线表示,但并不表示仅有一根总线或一种类型的总线。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本公开的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本公开的实施方式所属技术领域的技术人员所理解。处理器执行上文所描述的各个方法和处理。例如,本公开中的方法实施方式可以被实现为软件程序,其被有形地包含于机器可读介质,例如存储器。在一些实施方式中,软件程序的部分或者全部可以经由存储器和/或通信接口而被载入和/或安装。当软件程序加载到存储器并由处理器执行时,可以执行上文描述的方法中的一个或多个步骤。备选地,在其他实施方式中,处理器可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行上述方法之一。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,可以具体实现在任何可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。
就本说明书而言,“可读存储介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。可读存储介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,可读存储介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在存储器中。
应当理解,本公开的各部分可以用硬件、软件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施方式方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种可读存储介质中,该程序在执行时,包括方法实施方式的步骤之一或其组合。
此外,在本公开各个实施方式中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个可读存储介质中。存储介质可以是只读存储器,磁盘或光盘等。
图9是根据本公开的一个实施方式的墙体数据处理装置900的结构示例图。参见图9,本公开实施例的墙体数据处理装置900可以包括:参数获取单元902,用于获取对象的户型参数,所述户型参数至少包括:对象的墙体参数;墙线单元904,用于根据对象的墙体参数生成对象的墙线数据,所述墙线数据包括对象的各条墙线上的墙线线段的信息,每条墙线线段的信息用于指示所述墙线线段的类别、位置和方向;吸附线单元906,用于利用对象的墙线数据进行吸附线检测处理以生成所述对象的吸附线数据,所述吸附线数据包括对象墙体内吸附线段的信息,所述吸附线段至少用于创建构件。
图10是根据本公开的一个实施方式的墙体数据处理装置1000的结构示例图。参见图10,本公开实施例的墙体数据处理装置1000可以包括:数据获取单元1002,用于获取对象的吸附线数据,所述吸附线数据包括对象墙体内吸附线段的信息;触摸点检测单元1004,用于检测当前触摸点的位置;构件编辑单元1006,用于根据当前触摸点的位置和所述对象的吸附线数据,确定用于放置构件的吸附线段并在所述吸附线段上创建构件。
本公开实施例中,墙体数据处理装置900、构件创建装置1000的其他技术细节可参见前文方法部分,此处不再赘述。
本公开还提供了一种电子设备,包括:存储器,存储器存储执行指令;以及处理器或其他硬件模块,处理器或其他硬件模块执行存储器存储的执行指令,使得处理器或其他硬件模块执上述的墙体数据处理方法和/或构件创建方法。
本公开还提供了一种可读存储介质,可读存储介质中存储有执行指令,所述执行指令被处理器执行时用于实现上述的墙体数据处理方法和/或构件创建方法。
本公开还提供了一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现上述的墙体数据处理方法和/或构件创建方法。
在本说明书的描述中,参考术语“一个实施方式/方式”、“一些实施方式/方式”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施方式/方式或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施方式/方式或示例中。在本说明书中,对上述术语的示意性表述不必须的是相同的实施方式/方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施方式/方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施方式/方式或示例以及不同实施方式/方式或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
本领域的技术人员应当理解,上述实施方式仅仅是为了清楚地说明本公开,而并非是对本公开的范围进行限定。对于所属领域的技术人员而言,在上述公开的基础上还可以做出其它变化或变型,并且这些变化或变型仍处于本公开的范围内。
- 数据处理方法、装置、计算机可读存储介质和电子设备
- 路由数据处理方法、装置、电子设备及存储介质
- 区块链数据共识处理方法、系统、存储介质和电子设备
- 数据处理方法及装置、电子设备、存储介质
- 屏幕布局数据处理方法、装置、电子设备及存储介质
- 创建方法、信息处理方法、存储方法、电子设备及存储介质
- 一种清洗公共数据的创建方法、公共数据清洗方法及系统、电子设备、存储介质