翻譯|使用教程|編輯:黃竹雯|2018-11-16 12:08:53.000|閱讀 639 次
概述:ChartDirector 6.3(C ++版)教程分享——側(cè)標(biāo)簽布局
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
此示例演示了用于定位扇區(qū)標(biāo)簽的“側(cè)標(biāo)簽布局”方法。它還演示了金屬背景顏色,以及具有玻璃陰影效果和圓角的扇形標(biāo)簽。
使用“側(cè)標(biāo)簽布局”,扇區(qū)標(biāo)簽位于圖表的左側(cè)和右側(cè)。相比之下,所有先前的示例都使用“圓形標(biāo)簽布局”,其中標(biāo)簽圍繞餅圖圓形地定位。
“側(cè)標(biāo)簽布局”的優(yōu)點(diǎn)是標(biāo)簽會(huì)自動(dòng)上下移動(dòng)以避免重疊。在上圖中,餡餅右下方有許多小扇區(qū)。請(qǐng)注意,標(biāo)簽會(huì)移動(dòng)以避免重疊。
此示例演示了一種通過使用調(diào)整第一個(gè)扇區(qū)的起始角度來進(jìn)一步改進(jìn)標(biāo)簽布局的技術(shù)。
如果數(shù)據(jù)有很多小值并且已經(jīng)排序,那么小扇區(qū)就會(huì)擠在一起。對(duì)于這些情況,如果小扇區(qū)位于餅圖的左側(cè)或右側(cè),而不是頂部或底部,則標(biāo)簽布局將是最佳的(需要最少的移位)。
如果數(shù)據(jù)按降序排列(如本例所示),則可以使用135度的起始角度和順時(shí)針扇區(qū)布局將小扇區(qū)放置在大約45-135度(餅圖的右側(cè))。如果數(shù)據(jù)按升序排列,則可以使用具有順時(shí)針扇區(qū)布局的45度的起始角度來實(shí)現(xiàn)類似的效果。
源代碼清單
#include“chartdir.h” int main(int argc,char * argv []) { //餅圖的數(shù)據(jù) double data [] = {35,30,25,7,6,5,4,3,2,1}; //餅圖的標(biāo)簽 const char * labels [] = {“Labor”,“Production”,“Facilities”,“Taxes”,“Misc”,“Legal”, “保險(xiǎn)”,“許可證”,“運(yùn)輸”,“利息”}; //創(chuàng)建一個(gè)大小為560 x 270像素的PieChart對(duì)象,帶有金色背景和1像素3D // 邊界 PieChart * c =新的PieChart(560,270,Chart :: goldColor(),-1,1); //使用15pt Times Bold Italic字體和金屬粉紅色背景顏色添加標(biāo)題框 c-> addTitle(“Project Cost Breakdown”,“timesbi.ttf”,15) - > setBackground(Chart :: metalColor( 0xff9999)); //將餅圖的中心設(shè)置為(280,135),將半徑設(shè)置為110像素 c-> setPieSize(280,135,110); //使用20像素3D深度在3D中繪制餅圖 C-> set3D(20); //使用側(cè)標(biāo)簽布局方法 C-> setLabelLayout(圖::頁面布局); //將標(biāo)簽框背景顏色設(shè)置為與扇區(qū)顏色相同,具有玻璃效果,并使用 // 5像素圓角 TextBox * t = c-> setLabelStyle(); t-> setBackground(Chart :: SameAsMainColor,Chart :: Transparent,Chart :: glassEffect()); T-> setRoundedCorners(5); //將扇區(qū)的邊框顏色設(shè)置為與填充顏色相同的顏色。設(shè)置線條顏色 //連接線為黑色(0x0) c-> setLineColor(Chart :: SameAsMainColor,0x000000); //當(dāng)有許多小扇區(qū)時(shí),將起始角度設(shè)置為135度可以改善布局 //數(shù)據(jù)數(shù)組的結(jié)尾(即數(shù)據(jù)按降序排序)。是因?yàn)檫@個(gè) //使小扇區(qū)位于水平軸附近,文本標(biāo)簽的位置最小 //傾向于重疊 對(duì)于按升序排序的數(shù)據(jù),可以是45度的起始角度 //用來代替。 C-> setStartAngle(135); //設(shè)置餅圖數(shù)據(jù)和餅圖標(biāo)簽 c-> setData(DoubleArray(data,(int)(sizeof(data)/ sizeof(data [0]))),StringArray(labels,(int)( sizeof(labels)/ sizeof(labels [0])))); //輸出圖表 C-> makeChart( “sidelabelpie.png”); //釋放資源 刪除c; 返回0; }
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn