亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種前端組件進(jìn)行文字旋轉(zhuǎn)的方法及裝置與流程

文檔序號(hào):40391981發(fā)布日期:2024-12-20 12:15閱讀:6來源:國(guó)知局
一種前端組件進(jìn)行文字旋轉(zhuǎn)的方法及裝置與流程

本技術(shù)涉及計(jì)算機(jī),尤其涉及一種前端組件進(jìn)行文字旋轉(zhuǎn)的方法及裝置。


背景技術(shù):

1、在電子表格軟件的發(fā)展歷程中,數(shù)據(jù)展示方式的多樣性和靈活性一直是用戶關(guān)注的重點(diǎn)。隨著信息技術(shù)的不斷進(jìn)步和用戶需求的不斷升級(jí),電子表格軟件已經(jīng)從最初的簡(jiǎn)單數(shù)據(jù)記錄工具,發(fā)展成為具備復(fù)雜數(shù)據(jù)分析、數(shù)據(jù)可視化以及高度自定義展示功能的綜合性工具。

2、傳統(tǒng)的電子表格軟件,如早期的microsoft?excel等,雖然提供了基本的文字格式化選項(xiàng),如對(duì)齊方向、換行展示和文字方向等,但在單元格文字旋轉(zhuǎn)方面仍存在較大的局限性。這些軟件通常只能實(shí)現(xiàn)簡(jiǎn)單的文字旋轉(zhuǎn)功能,且旋轉(zhuǎn)效果往往不夠精準(zhǔn),無法滿足用戶對(duì)數(shù)據(jù)展示效果的個(gè)性化需求。近年來,隨著前端技術(shù)的飛速發(fā)展和用戶需求的不斷變化,一些新型的電子表格前端組件開始涌現(xiàn)。這些組件不僅具備了傳統(tǒng)電子表格軟件的基本功能,還在數(shù)據(jù)展示方式上進(jìn)行了大膽的創(chuàng)新和嘗試。然而,盡管這些新型組件在文字旋轉(zhuǎn)功能上有了一定的提升,但仍然存在一些問題。例如,一些組件在實(shí)現(xiàn)文字旋轉(zhuǎn)時(shí),沒有充分考慮影響單元格文字位置的所有因素,導(dǎo)致旋轉(zhuǎn)后的文字位置不準(zhǔn)確,甚至與單元格邊框或背景色發(fā)生沖突,嚴(yán)重影響了數(shù)據(jù)的可讀性和美觀性。

3、因此,如何在電子表格前端組件中實(shí)現(xiàn)精準(zhǔn)的文字旋轉(zhuǎn)功能,并充分考慮影響單元格文字位置的所有因素,成為當(dāng)前亟待解決的技術(shù)問題。


技術(shù)實(shí)現(xiàn)思路

1、在本技術(shù)實(shí)施例中,通過提供一種前端組件進(jìn)行文字旋轉(zhuǎn)的方法,解決了如何在電子表格前端組件中實(shí)現(xiàn)精準(zhǔn)的文字旋轉(zhuǎn)功能,并充分考慮影響單元格文字位置的所有因素的問題。

2、第一方面,本技術(shù)實(shí)施例提供了一種前端組件進(jìn)行文字旋轉(zhuǎn)的方法,該方法包括:標(biāo)識(shí)目標(biāo)單元格的位置,并獲取目標(biāo)單元格中的文本內(nèi)容和樣式信息;將旋轉(zhuǎn)角度轉(zhuǎn)換為弧度,使用內(nèi)置函數(shù)獲取每個(gè)弧度對(duì)應(yīng)的三角函數(shù)值;根據(jù)目標(biāo)單元格的尺寸和旋轉(zhuǎn)角度,動(dòng)態(tài)調(diào)整文本大小,確保繪制的文本不超過目標(biāo)單元格的尺寸;使用循環(huán)結(jié)構(gòu)嘗試不同的字體大小,直至達(dá)到預(yù)設(shè)次數(shù)或找到合適的字體大??;根據(jù)目標(biāo)單元格的寬度和字體大小,對(duì)超出目標(biāo)單元格的有效尺寸的文本進(jìn)行換行處理,并獲取每行的文本內(nèi)容和總行數(shù);根據(jù)目標(biāo)單元格的水平和垂直對(duì)齊方式、文本所占據(jù)的虛擬矩形空間以及設(shè)定的旋轉(zhuǎn)角度,分九種組合對(duì)齊方式計(jì)算文本中心的位置;其中,旋轉(zhuǎn)角度設(shè)定為文本相對(duì)于水平方向;對(duì)于多行文本,重復(fù)執(zhí)行位置確定步驟,直至所有行文本中心的位置都被確定;利用畫布的接口,根據(jù)旋轉(zhuǎn)角度和文本中心的位置對(duì)文本進(jìn)行變換與填充的操作,當(dāng)目標(biāo)單元格有背景色和邊框時(shí),使背景色和邊框隨文本方向同步變換。

3、在一種可能的實(shí)現(xiàn)方式中,還包括:判斷目標(biāo)單元格是否使用格式化函數(shù);若目標(biāo)單元格使用格式化函數(shù),執(zhí)行該函數(shù)并獲取返回值作為最新文本;若目標(biāo)單元格未使用格式化函數(shù),獲取目標(biāo)單元格的當(dāng)前值作為最新文本。

4、在一種可能的實(shí)現(xiàn)方式中,所述根據(jù)目標(biāo)單元格的尺寸和旋轉(zhuǎn)角度,動(dòng)態(tài)調(diào)整文本大小,包括:初始化空間變量和字體對(duì)象;空間變量用于表示目標(biāo)單元格可用于顯示文本的有效寬度,其初始值設(shè)置為0;字體對(duì)象中的值屬性用于標(biāo)記當(dāng)前字體大小是否合適,將值屬性的初始值設(shè)置為不合適;計(jì)算空間變量的值,空間變量的值基于目標(biāo)單元格的尺寸和旋轉(zhuǎn)角度確定,使用求最大值函數(shù)確??臻g變量的值始終為正值,以確保繪制的文本不超過目標(biāo)單元格的尺寸。

5、在一種可能的實(shí)現(xiàn)方式中,所述使用循環(huán)結(jié)構(gòu)嘗試不同的字體大小,直至達(dá)到預(yù)設(shè)次數(shù)或找到合適的字體大小,包括:使用當(dāng)前字體大小計(jì)算文本寬度;判斷目標(biāo)單元格的空間變量的值是否小于文本寬度;若目標(biāo)單元格的空間變量的值小于文本寬度,迭代執(zhí)行迭代步驟,直至達(dá)到預(yù)設(shè)次數(shù)或所創(chuàng)建的合適字體對(duì)象中的值屬性為合適;若目標(biāo)單元格的空間變量的值大于或等于文本寬度,此時(shí)所創(chuàng)建的字體對(duì)象中的值屬性為合適,表示已找到合適的字體大小,退出循環(huán)結(jié)構(gòu);所述迭代步驟包括:基于空間變量的值和文本寬度的比值計(jì)算字體大小的調(diào)整比例,根據(jù)調(diào)整比例計(jì)算出新的字體大小,并使用新的字體大小獲取更新后的文本寬度。

6、在一種可能的實(shí)現(xiàn)方式中,所述根據(jù)目標(biāo)單元格的寬度和字體大小,對(duì)超出目標(biāo)單元格的有效尺寸的文本進(jìn)行換行處理,并獲取每行的文本內(nèi)容和總行數(shù),包括:初始化一個(gè)空數(shù)組,用于存儲(chǔ)經(jīng)過換行處理后的每一行文本;初始化一個(gè)空字符數(shù)組,用于累積當(dāng)前正在處理的文本;將待處理的文本分割成單詞列表,迭代執(zhí)行遍歷步驟遍歷單詞列表中的每個(gè)單詞,每次遍歷處理一個(gè)單詞;所述遍歷步驟包括:根據(jù)目標(biāo)單元格字體大小,計(jì)算當(dāng)前單詞添加至當(dāng)前累積的字符數(shù)組后組成的字符串的長(zhǎng)度,判斷其是否會(huì)超出目標(biāo)單元格的有效尺寸;若不會(huì)超出,將其添加到字符數(shù)組中;若會(huì)超出,執(zhí)行換行處理;遍歷結(jié)束后,檢查是否還有未處理的字符在字符數(shù)組中;若有,將它們作為最后一行添加到數(shù)組中;返回?fù)Q行處理后的數(shù)組和總行數(shù),以獲取每行的文本內(nèi)容和總行數(shù)。

7、在一種可能的實(shí)現(xiàn)方式中,所述換行處理包括:檢查當(dāng)前累積的字符數(shù)組是否為空;若不為空,將當(dāng)前累積的字符數(shù)組中的內(nèi)容作為一行添加到數(shù)組中,并清空當(dāng)前累積的字符數(shù)組,獲得清空的字符數(shù)組;將當(dāng)前單詞添加到清空的字符數(shù)組中,作為新行的開始。

8、在一種可能的實(shí)現(xiàn)方式中,所述根據(jù)目標(biāo)單元格的水平和垂直對(duì)齊方式、文本所占據(jù)的虛擬矩形空間以及設(shè)定的旋轉(zhuǎn)角度,分九種組合對(duì)齊方式計(jì)算文本中心的位置,包括:第一種組合對(duì)齊方式為:水平方向居右對(duì)齊,垂直方向居下對(duì)齊;第一種組合對(duì)齊方式時(shí)文本中心的位置的計(jì)算方式為:根據(jù)公式計(jì)算第一水平偏移量;其中,為第一水平偏移量,為文本所占據(jù)的虛擬矩形空間的高度,為文本相對(duì)于水平方向的旋轉(zhuǎn)角度;根據(jù)公式計(jì)算第二水平偏移量;其中,為第二水平偏移量,為文本所占據(jù)的虛擬矩形空間的寬度,為文本相對(duì)于水平方向的旋轉(zhuǎn)角度;第一總水平偏移量為目標(biāo)單元格的寬度減去第一水平偏移量和第二水平偏移量;根據(jù)公式計(jì)算第一垂直偏移量;其中,為第一垂直偏移量,為文本所占據(jù)的虛擬矩形空間的高度,為文本相對(duì)于水平方向的旋轉(zhuǎn)角度;根據(jù)公式計(jì)算第二垂直偏移量;其中,為第二垂直偏移量,為文本所占據(jù)的虛擬矩形空間的寬度,為文本相對(duì)于水平方向的旋轉(zhuǎn)角度;第一總垂直偏移量為目標(biāo)單元格的高度減去第一垂直偏移量和第二垂直偏移量;將起始點(diǎn)坐標(biāo)加上第一總水平偏移量和第一總垂直偏移量,以獲得第一種組合對(duì)齊方式時(shí)的文本中心的位置;其中起始點(diǎn)坐標(biāo)為目標(biāo)單元格的左上角的頂點(diǎn)坐標(biāo)。

9、在一種可能的實(shí)現(xiàn)方式中,第二種組合對(duì)齊方式為:水平方向居左對(duì)齊,垂直方向居上對(duì)齊;第二種組合對(duì)齊方式時(shí)文本中心的位置的計(jì)算方式為:,;其中,為第三水平偏移量,為第三垂直偏移量;將起始點(diǎn)坐標(biāo)加上第三水平偏移量和第三垂直偏移量,以獲得第二種組合對(duì)齊方式時(shí)的文本中心的位置;第三種組合對(duì)齊方式為:水平方向居中對(duì)齊,垂直方向居上對(duì)齊;第三種組合對(duì)齊方式時(shí)文本中心的位置的計(jì)算方式為:,;其中,為第四水平偏移量,w為目標(biāo)單元格的寬度,為第四垂直偏移量;將起始點(diǎn)坐標(biāo)加上第四水平偏移量和第四垂直偏移量,以獲得第三種組合對(duì)齊方式時(shí)的文本中心的位置;第四種組合對(duì)齊方式為:水平方向居右對(duì)齊,垂直方向居上對(duì)齊;第四種組合對(duì)齊方式時(shí)文本中心的位置的計(jì)算方式為:,;其中,為第五水平偏移量,為第五垂直偏移量;將起始點(diǎn)坐標(biāo)加上第五水平偏移量和第五垂直偏移量,以獲得第四種組合對(duì)齊方式時(shí)的文本中心的位置;第五種組合對(duì)齊方式為:水平方向居右對(duì)齊,垂直方向居中對(duì)齊;第五種組合對(duì)齊方式時(shí)文本中心的位置的計(jì)算方式為:,;其中,為第五水平偏移量,為第五垂直偏移量,為目標(biāo)單元格的高度;將起始點(diǎn)坐標(biāo)加上第六水平偏移量和第六垂直偏移量,以獲得第五種組合對(duì)齊方式時(shí)的文本中心的位置;第六種組合對(duì)齊方式為:水平方向居中對(duì)齊,垂直方向居中對(duì)齊;第六種組合對(duì)齊方式時(shí)文本中心的位置的計(jì)算方式為:,;其中,為第七水平偏移量,為第七垂直偏移量;將起始點(diǎn)坐標(biāo)加上第七水平偏移量和第七垂直偏移量,以獲得第六種組合對(duì)齊方式時(shí)的文本中心的位置;第七種組合對(duì)齊方式為:水平方向居右對(duì)齊,垂直方向居中對(duì)齊;第七種組合對(duì)齊方式時(shí)文本中心的位置的計(jì)算方式為:,;其中,為第八水平偏移量,為第八垂直偏移量;將起始點(diǎn)坐標(biāo)加上第八水平偏移量和第八垂直偏移量,以獲得第七種組合對(duì)齊方式時(shí)的文本中心的位置;第八種組合對(duì)齊方式為:水平方向居左對(duì)齊,垂直方向居下對(duì)齊;第八種情況時(shí)文本中心的位置的計(jì)算方式為:,;其中,為第九水平偏移量,為第九垂直偏移量;將起始點(diǎn)坐標(biāo)加上第九水平偏移量和第九垂直偏移量,以獲得第八種組合對(duì)齊方式時(shí)的文本中心的位置;第九種組合對(duì)齊方式為:水平方向居中對(duì)齊,垂直方向居下對(duì)齊;第九種組合對(duì)齊方式時(shí)文本中心的位置的計(jì)算方式為:,;其中,為第十水平偏移量,為第十垂直偏移量;將起始點(diǎn)坐標(biāo)加上第十水平偏移量和第十垂直偏移量,以獲得第九種組合對(duì)齊方式時(shí)的文本中心的位置。

10、在一種可能的實(shí)現(xiàn)方式中,所述對(duì)于多行文本,重復(fù)執(zhí)行位置確定步驟,直至所有行文本中心的位置都被確定,包括:從第一行文本開始,判斷其組合對(duì)齊方式,計(jì)算第一行文本中心的位置;計(jì)算第二行文本及之后的每一行文本,計(jì)算其相對(duì)于第一行文本的水平偏移量增量;其中,水平偏移量增量為行間距除以旋轉(zhuǎn)角度的正弦值;將計(jì)算出的水平偏移量增量累加到前一行文本中心點(diǎn)的水平偏移量上,獲得當(dāng)前文本中心的水平偏移量;根據(jù)當(dāng)前行文本中心的水平偏移量和垂直偏移量,計(jì)算出當(dāng)前行文本的中心位置。

11、第二方面,本技術(shù)實(shí)施例提供了一種前端組件進(jìn)行文字旋轉(zhuǎn)的裝置,該裝置包括:獲取模塊,用于標(biāo)識(shí)目標(biāo)單元格的位置,并獲取目標(biāo)單元格中的文本內(nèi)容和樣式信息;轉(zhuǎn)換模塊,用于將旋轉(zhuǎn)角度轉(zhuǎn)換為弧度,使用內(nèi)置函數(shù)獲取每個(gè)弧度對(duì)應(yīng)的三角函數(shù)值;調(diào)整模塊,用于根據(jù)目標(biāo)單元格的尺寸和旋轉(zhuǎn)角度,動(dòng)態(tài)調(diào)整文本大小,確保繪制的文本不超過目標(biāo)單元格的尺寸;嘗試模塊,用于使用循環(huán)結(jié)構(gòu)嘗試不同的字體大小,直至達(dá)到預(yù)設(shè)次數(shù)或找到合適的字體大??;換行處理模塊,用于根據(jù)目標(biāo)單元格的寬度和字體大小,對(duì)超出目標(biāo)單元格的有效尺寸的文本進(jìn)行換行處理,并獲取每行的文本內(nèi)容和總行數(shù);計(jì)算模塊,用于根據(jù)目標(biāo)單元格的水平和垂直對(duì)齊方式、文本所占據(jù)的虛擬矩形空間以及設(shè)定的旋轉(zhuǎn)角度,分九種組合對(duì)齊方式計(jì)算文本中心的位置;其中,旋轉(zhuǎn)角度設(shè)定為文本相對(duì)于水平方向;執(zhí)行模塊,用于對(duì)于多行文本,重復(fù)執(zhí)行位置確定步驟,直至所有行文本中心的位置都被確定;變換與填充模塊,用于利用畫布的接口,根據(jù)旋轉(zhuǎn)角度和文本中心的位置對(duì)文本進(jìn)行變換與填充的操作,當(dāng)目標(biāo)單元格有背景色和邊框時(shí),使背景色和邊框隨文本方向同步變換。

12、本技術(shù)實(shí)施例中提供的一個(gè)或多個(gè)技術(shù)方案,至少具有如下技術(shù)效果:

13、本技術(shù)實(shí)施例提供了一種前端組件進(jìn)行文字旋轉(zhuǎn)的方法,通過標(biāo)識(shí)目標(biāo)單元格的位置,并獲取目標(biāo)單元格中的文本內(nèi)容和樣式信息,為后續(xù)的文本處理和繪制提供可靠的數(shù)據(jù)基礎(chǔ)。通過將旋轉(zhuǎn)角度轉(zhuǎn)換為弧度并計(jì)算三角函數(shù)值,結(jié)合目標(biāo)單元格的尺寸,動(dòng)態(tài)調(diào)整文本大小,確保文本在旋轉(zhuǎn)后仍能完美適應(yīng)單元格,避免溢出或截?cái)啵嵘曈X美感。使用循環(huán)結(jié)構(gòu),以預(yù)設(shè)次數(shù)為上限,嘗試不同的字體大小,直至找到既能滿足文本清晰度又能適應(yīng)單元格尺寸的最佳字體大小,提高文本渲染的效率和準(zhǔn)確性。根據(jù)目標(biāo)單元格的寬度和字體大小,對(duì)超出目標(biāo)單元格的有效尺寸的文本進(jìn)行換行處理,確保文本內(nèi)容清晰可讀,同時(shí)減少用戶手動(dòng)調(diào)整的繁瑣。根據(jù)目標(biāo)單元格的水平和垂直對(duì)齊方式、文本所占據(jù)的虛擬矩形空間以及設(shè)定的旋轉(zhuǎn)角度,分九種組合對(duì)齊方式計(jì)算文本中心的位置。這種處理方式能夠確保文本在旋轉(zhuǎn)后仍然保持正確的對(duì)齊和布局。對(duì)于包含多行文本的單元格,重復(fù)執(zhí)行位置確定步驟,確保每一行文本的中心位置都被準(zhǔn)確計(jì)算,從而實(shí)現(xiàn)整段文本的精確繪制。利用畫布的接口,根據(jù)旋轉(zhuǎn)角度和文本中心的位置,對(duì)文本進(jìn)行變換與填充操作。這種靈活性使得文本能夠以任意角度呈現(xiàn),同時(shí)保持清晰的視覺效果。當(dāng)目標(biāo)單元格具有背景色和邊框時(shí),能夠確保背景色和邊框隨文本方向同步變換,從而保持整體視覺效果的一致性和協(xié)調(diào)性。通過上述步驟,可以顯著提升用戶在處理復(fù)雜文本布局和旋轉(zhuǎn)時(shí)的體驗(yàn),減少手動(dòng)調(diào)整的復(fù)雜性和時(shí)間成本,提高工作效率。解決了如何在電子表格前端組件中實(shí)現(xiàn)精準(zhǔn)的文字旋轉(zhuǎn)功能,并充分考慮影響單元格文字位置的所有因素的問題。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1