中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

GoJs圖形繪圖模板Shape怎么使用

發布時間:2023-04-15 10:58:49 來源:億速云 閱讀:236 作者:iii 欄目:開發技術

這篇“GoJs圖形繪圖模板Shape怎么使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“GoJs圖形繪圖模板Shape怎么使用”文章吧。

    Shape的使用

    go.Shape其實是gojs內部封裝的一種繪圖模板,和上文的go.TextBlock類似。

    this.myDiagram.nodeTemplate = $$(
        go.Node,
        "Horizontal",
        $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5, fill: "#67B73c",stroke:"#FF9900" }),
        $$(go.Shape, 'Square', { width: 50, height: 40, margin: 5, fill: "#67B73c",stroke:"#FF9900" }),
        $$(go.Shape, 'Ellipse', { width: 50, height: 40, margin: 5, fill: "#67B73c",stroke:"#FF9900" }),
        $$(go.Shape, 'Circle', { width: 50, height: 40, margin: 5, fill: "#67B73c",stroke:"#FF9900" }),
        $$(go.Shape, 'TriangleDown', { width: 50, height: 40, margin: 5, fill: "#67B73c",stroke:"#FF9900" }),
        $$(go.Shape, 'Diamond', { width: 50, height: 40, margin: 5, fill: "#67B73c",stroke:"#FF9900" }),
        $$(go.Shape, 'PlusLine', { width: 50, height: 40, margin: 5, fill: "#67B73c",stroke:"#FF9900" }),
        $$(go.Shape, 'MinusLine', { width: 50, height: 40, margin: 5, fill: "#67B73c",stroke:"#FF9900" }),
    )

    這里列舉了一些常見的幾個圖形的顯示,其顯示如下

    GoJs圖形繪圖模板Shape怎么使用

    這里可以看出在指定了繪圖模型為go.Shape之后,第一個參數是內置的圖形的名稱。第二個參數和go.TextBlock類似,里面存放的是幾個圖形繪圖模塊的配置信息,在不同的繪圖模型中,很多的配置屬性是一樣的,并且是通用的。下面列舉一下圖形的一些常用的配置屬性

    $$(go.Shape, 'Rectangle', 
        { 
            width: 50,//幾何圖形模板的寬度
            height: 40, //幾何圖形模板的高度
            margin: 5, //幾個圖形的外邊距
            fill: "#67B73c",//幾何圖形的內容填充顏色
            stroke:"#FF9900", //幾何圖形的邊框顏色
            strokeWidth:3, //外面邊框的寬度
            strokeDashArray: [4, 2],//圖形的裁剪,可以設置數值然后做成虛線邊框
            cursor: "pointer",//類似css,鼠標小手樣式
            geometry:geo,//對圖形進行拓展,可以是svg代碼
            angle:90,//圖形的旋轉角度
            scale: 1,//圖形的縮放比例,默認為1,原始尺寸
            strokeCap:"butt",//設置圖形線尾的樣式,有butt、round、square。
            strokeJoin:"miter"//設置圖形拐角處樣式,miter、bevel、round。
        }
    ),

    width和height屬性

    其中widthheight是這個幾何圖形模板的寬高,而不是具體幾何圖形的寬高,例如示例中width為50、heigth為40的正方形的話,會優先設置widthheight最小的那個為邊長,也就是會生成一個邊長為40的正方形。

    fill屬性

    fill屬性為幾何圖形的填充顏色,默認為黑色。如果設置fill的屬性為null的時候其內部填充為透明,另外fill的另一個值為transparent也是設置內部填充透明。其設置完成之后分別顯示為

    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5, fill: null,stroke:"#FF9900" }),
    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5, fill: "transparent",stroke:"#FF9900" }),

    GoJs圖形繪圖模板Shape怎么使用

    在顯示內容上兩者顯示一樣,但是如果給這個幾何圖形設置了點擊事件之后,設置為null的圖形內部空白無法觸發點擊事件,而設置屬性為transparent的圖形內部點擊則可以觸發點擊事件。說明設置為null之后,圖形內部沒有繪圖元素,而設置為transparent圖形內部則是透明的繪圖元素。

    stroke、strokeWidth、strokeDashArray屬性

    strokestrokeWidthstrokeDashArray都是對邊框操作的屬性。stroke為邊框的顏色,默認黑色,其設置為nulltransparent的顯示和觸發點擊事件和fill一致,strokeWidth為邊框的寬度,strokeDashArray設置邊框虛線的屬性。該值必須是一個由正數和零組成的數組,否則為 null 表示實線。例如,數組[4,2]將創建4像素的破折號和2像素的空格。

    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5, fill: null,stroke:"#FF9900",strokeWidth:1 }),
    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5, fill: null,stroke:"#FF9900",strokeWidth:2 }),
    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5, fill: null,stroke:"#FF9900",strokeDashArray:[4,2] }),
    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5, fill: null,stroke:"#FF9900",strokeDashArray:[4,5] }),

    GoJs圖形繪圖模板Shape怎么使用

    geometry屬性

    可以通過geometry對圖形進行拓展,例如一段svg代碼。這樣在開發過程中就可以引入很多的矢量圖標庫來進行使用,以一個×的svg代碼為例。

    //data
    cancal:"M284.284 256l157.858 157.858c3.619 3.62 5.858 8.62 5.858 14.142 0 11.046-8.954 20-20 20-5.523 0-10.523-2.238-14.142-5.858l-157.857-157.857-157.858 157.858c-3.618 3.613-8.614 5.848-14.132 5.848-11.046 0-20-8.954-20-20 0-5.518 2.234-10.514 5.849-14.133v0l157.857-157.858-157.857-157.857c-3.62-3.62-5.858-8.62-5.858-14.142 0-11.046 8.955-20 20-20 5.523 0 10.523 2.238 14.142 5.858l157.858 157.858 157.858-157.858c3.619-3.616 8.617-5.853 14.137-5.853 11.046 0 20 8.954 20 20 0 5.52-2.236 10.518-5.853 14.137v0z"
    //methods
    let geo = go.Geometry.parse(this.cancal, true);
    this.myDiagram.nodeTemplate = $$(
        go.Node,
        "Horizontal",
        $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5, fill: null,stroke:"#FF9900",geometry:geo }),
    )

    GoJs圖形繪圖模板Shape怎么使用

    這樣就實現了一個svg圖形的引入,在項目中可以導入自己喜歡的iconfont圖標庫或者公司內部圖標庫,非常方便。

    angle、scale屬性

    angle是圖形的旋轉屬性,scale為圖形的縮放屬性.在開發過程中,很多的可視化圖形為了看起比較好看,信息明朗,小對稱。可能會使用到旋轉和縮放的的屬性。

    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5, fill: null,stroke:"#FF9900",angle:30}),
    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5, fill: null,stroke:"#FF9900",angle:60}),
    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5, fill: null,stroke:"#FF9900",scale:1}),
    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5, fill: null,stroke:"#FF9900",scale:2}),

    GoJs圖形繪圖模板Shape怎么使用

    strokeCap strokeJoin屬性

    strokeCap設置的是圖形邊框結尾處的樣式,而strokeJoin則是圖形邊框拐角處的樣式,因為上面引入的圖像是一個閉合圖形,所以重新使用一個svg圖形。

    //data
    d:"M150 0 L75 200 L225 200"
    //methods
    let geo = go.Geometry.parse(this.d, true);
    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5,strokeWidth:10, fill: null,stroke:"#FF9900",geometry:geo,strokeCap:"butt",strokeJoin: 'miter'}),
    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5,strokeWidth:10, fill: null,stroke:"#FF9900",geometry:geo,strokeCap:"round",strokeJoin: 'miter'}),
    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5,strokeWidth:10, fill: null,stroke:"#FF9900",geometry:geo,strokeCap:"square",strokeJoin: 'miter'}),
    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5,strokeWidth:10, fill: null,stroke:"#FF9900",geometry:geo,strokeCap:"butt",strokeJoin: 'bevel'}),
    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5,strokeWidth:10, fill: null,stroke:"#FF9900",geometry:geo,strokeCap:"round",strokeJoin: 'bevel'}),
    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5,strokeWidth:10, fill: null,stroke:"#FF9900",geometry:geo,strokeCap:"square",strokeJoin: 'bevel'}),
    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5,strokeWidth:10, fill: null,stroke:"#FF9900",geometry:geo,strokeCap:"butt",strokeJoin: 'round'}),
    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5,strokeWidth:10, fill: null,stroke:"#FF9900",geometry:geo,strokeCap:"round",strokeJoin: 'round'}),
    $$(go.Shape, 'Rectangle', { width: 50, height: 40, margin: 5,strokeWidth:10, fill: null,stroke:"#FF9900",geometry:geo,strokeCap:"square",strokeJoin: 'round'})

    GoJs圖形繪圖模板Shape怎么使用

    其屬性分別可以改變圖形結尾和拐角處的圓角、尖角、平角。

    拓展

    利用go.Shapego.Brush結合使用可以構造出一個顏色漸變的圖形

    $$(go.Shape, 'Rectangle', { width: 50, height: 100, margin: 5, fill: $$(go.Brush, "Linear", {0.0: "#155247", 1.0: "#0B1A22"}),stroke:"#FF9900"},),
    $$(go.Shape, 'Rectangle', { width: 50, height: 100, margin: 5, fill: $$(go.Brush, "Linear", {0.0: "#67541F", 1.0: "#211F1C"}),stroke:"#FF9900"},),
    $$(go.Shape, 'Rectangle', { width: 50, height: 100, margin: 5, fill:  $$(go.Brush, "Linear", {0.0: "#662A33", 1.0: "#1D0F1B"}),stroke:"#FF9900"},),

    GoJs圖形繪圖模板Shape怎么使用

    go.Brush的第一個參數為Linear為線性顏色變化,后面的參數則是最上方和最下方的顏色值配置。

    以上就是關于“GoJs圖形繪圖模板Shape怎么使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    广丰县| 台前县| 平和县| 达孜县| 石河子市| 镇宁| 田东县| 邛崃市| 济南市| 历史| 叙永县| 右玉县| 马尔康县| 土默特右旗| 思茅市| 龙口市| 信阳市| 荆门市| 南雄市| 南澳县| 南充市| 清远市| 阳江市| 汝州市| 闽侯县| 阳高县| 凤庆县| 句容市| 英吉沙县| 惠来县| 石家庄市| 广灵县| 岳阳县| 邯郸市| 炎陵县| 张掖市| 曲阜市| 双江| 万源市| 板桥市| 汶上县|