翻譯|使用教程|編輯:楊鵬連|2020-08-20 10:15:34.903|閱讀 301 次
概述:本教程介紹如何創建分級面板,在“刻度”面板Panel.Graduated,平定期刻度/文字標簽沿主子圖的行程形狀。刻度面板可以視為顯示一系列值的比例尺。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
GoJS是一款功能強大,快速且輕量級的流程圖控件,可幫助你在JavaScript 和HTML5 Canvas程序中創建流程圖,且極大地簡化您的JavaScript / Canvas 程序。
在“刻度”面板,Panel.Graduated,平定期刻度/文字標簽沿主子圖的行程形狀。刻度面板可以視為顯示一系列值的比例尺。
有關刻度面板的示例,請參見時間線, 溫度計, 儀表規和標尺圖示例。
簡單的分級面板
類似于自動面板和現場面板,漸變面板中應包含兩個或多個元素。元素必須是Shape或TextBlock。可以通過將GraphObject.isPanelMain設置為true 來聲明主要的Shape元素。但是如果它是面板的第一個元素,則無需進行此類設置。除了主要Shape之外,Shape和TextBlocks基本上充當繪制每個刻度線和標簽的模板。
刻度標記形狀秒的刻度面板內應具有測量大小,通過設置一個GraphObject.desiredSize (或width和height屬性),或通過設置其Shape.geometry。對于描繪的常態的主要形狀的路徑基本刻度標記,它是最容易使用的一個簡單的垂直線的幾何形狀字符串:M0 0 V10。幾何圖形的高度將確定刻度線的長度。
diagram.add(
// all Parts are Panels
$(go.Part, go.Panel.Graduated, // or "Graduated"
$(go.Shape, { geometryString: "M0 0 H400" }), // the main shape, a horizontal line
$(go.Shape, { geometryString: "M0 0 V10" }) // a tick mark, a vertical line
));

diagram.add(
$(go.Part, "Graduated",
{ background: "transparent" }, // make panel pickable
// main shape is a whole circle
$(go.Shape, "Circle",
{ fill: null, desiredSize: new go.Size(150, 150) }),
// tick shape is a double line
$(go.Shape, { geometryString: "M0 0 V10 M3 0 V10" })
));

diagram.add(
$(go.Part, "Graduated",
{ background: "transparent" }, // make panel pickable
$(go.Shape, { geometryString: "M0 0 H400" }), // the main shape
$(go.TextBlock, { segmentOffset: new go.Point(0, 12) }) // tick labels
));

有許多屬性可以控制刻度線和標簽的外觀。
刻度線值
從主要形狀的筆觸的開始到筆劃的結束,“刻度面板”的刻度值將在線性范圍內變化。刻度線和標簽的值和頻率由一些屬性控制:
graduatedMinof 0,graduatedMaxof 77, graduatedTickBaseof 0,graduatedTickUnitof 2.5和4的間隔可能會顯示為:
diagram.add(
$(go.Part, "Graduated",
{
graduatedMin: 0, graduatedMax: 77,
graduatedTickBase: 0, graduatedTickUnit: 2.5,
background: "transparent"
},
$(go.Shape, { geometryString: "M0 0 H400" }), // the main Shape
// a short, frequent tick mark
$(go.Shape, { geometryString: "M0 0 V5" }),
// a longer tick mark every four ticks
$(go.Shape, { geometryString: "M0 0 V10", interval: 4 }),
// text label only every four ticks, with a vertical offset
$(go.TextBlock, { segmentOffset: new go.Point(0, 12), interval: 4 })
));

改graduatedMin為-23結果為:
diagram.add(
$(go.Part, "Graduated",
{
graduatedMin: -23, graduatedMax: 77,
graduatedTickBase: 0, graduatedTickUnit: 2.5,
background: "transparent"
},
$(go.Shape, { geometryString: "M0 0 H400" }), // the main Shape
$(go.Shape, { geometryString: "M0 0 V5" }), // short tick mark
$(go.Shape, { geometryString: "M0 0 V10", interval: 4 }), // long tick mark
$(go.TextBlock, { segmentOffset: new go.Point(0, 12), interval: 4 }) // labels
));

更改graduatedTickBase為1.2結果為:
diagram.add(
$(go.Part, "Graduated",
{
graduatedMin: -23, graduatedMax: 77,
graduatedTickBase: 1.2, graduatedTickUnit: 2.5,
background: "transparent"
},
$(go.Shape, { geometryString: "M0 0 H400" }), // the main Shape
$(go.Shape, { geometryString: "M0 0 V5" }), // short tick mark
$(go.Shape, { geometryString: "M0 0 V10", interval: 4 }), // long tick mark
$(go.TextBlock, { segmentOffset: new go.Point(0, 12), interval: 4 }) // labels
));

將的值加倍graduatedTickUnit會5導致:
diagram.add(
$(go.Part, "Graduated",
{
graduatedMin: -23, graduatedMax: 77,
graduatedTickBase: 1.2, graduatedTickUnit: 5,
background: "transparent"
},
$(go.Shape, { geometryString: "M0 0 H400" }),
$(go.Shape, { geometryString: "M0 0 V5" }), // short tick mark
$(go.Shape, { geometryString: "M0 0 V10", interval: 4 }), // long tick mark
$(go.TextBlock, { segmentOffset: new go.Point(0, 12), interval: 4 }) // labels
));

改graduatedTickBase回0和將間隔更改為5:
diagram.add(
$(go.Part, "Graduated",
{
graduatedMin: -23, graduatedMax: 77,
graduatedTickBase: 0, graduatedTickUnit: 5,
background: "transparent"
},
$(go.Shape, { geometryString: "M0 0 H400" }),
$(go.Shape, { geometryString: "M0 0 V5" }), // short tick mark
$(go.Shape, { geometryString: "M0 0 V10", interval: 5 }), // long tick mark
$(go.TextBlock, { interval: 5, segmentOffset: new go.Point(0, 12) })
));

diagram.add(
$(go.Part, "Graduated",
{
graduatedMin: 0, graduatedMax: 140,
graduatedTickBase: 0, graduatedTickUnit: 5,
background: "transparent"
},
$(go.Shape, { geometryString: "M0 0 H450" }), // longer line
$(go.Shape, { geometryString: "M0 0 V5" }),
$(go.Shape, { geometryString: "M0 0 V10", interval: 4 }),
// minor label
$(go.TextBlock, { interval: 2, segmentOffset: new go.Point(0, 8),
stroke: "blue", font: "7pt sans-serif" }),
// major label
$(go.TextBlock, { interval: 4, segmentOffset: new go.Point(0, 12),
stroke: "red", font: "bold 12pt sans-serif" })
));
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉載自: