【问题标题】:Fill Polygon Area Html5 Canvas [closed]填充多边形区域 Html5 画布 [关闭]
【发布时间】:2013-07-22 17:46:00
【问题描述】:

这是 HTML 代码

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>    
<script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v4.5.4.min.js"></script>
<input type="button" value="draw" onclick="setdraw()" />
<input type="button" value="fill" onclick="setfill()" />
<div id="drawarea">
</div>

这是 Javascript 代码

var flag = false;
var pen_arr = [];
var drawble = true;
$(document).ready(function(){
    init();
});

function setfill(){
    drawble = false;
}

function setdraw(){
    drawble = true;
}

function init(){
    stage = new Kinetic.Stage({
        container: 'drawarea',
        width: 500,
        height: 800
    });

    background = new Kinetic.Rect({
        x: 0, 
        y: 0, 
        width: stage.getWidth(),
        height: stage.getHeight()
    });

    layer = new Kinetic.Layer();
    layer.add(background);

    stage.add(layer);

    stage.on("mousedown", mouseDown );
    stage.on("mousemove", mouseMove );
    stage.on("mouseup",   mouseUp );
}

function mouseDown(){

  if (drawble === true){   
    flag = true;
    var mousePos = stage.getMousePosition();
    var tmp_pen = new Kinetic.Line({
        points:[mousePos.x, mousePos.y, mousePos.x + 1, mousePos.y + 1 ],
        stroke: "blue",  
        strokeWidth: 3
    });
    layer.add(tmp_pen );    
    pen_arr.push(tmp_pen );
    layer.drawScene();   
  }else{
     flag = false;

    // in here i have to carry fill function
    // when i click in stage, i have to set the fill color in closed area after drawing pen
  }

}

function mouseMove(){
    if(flag === true ) {
        var mousePos = stage.getMousePosition();
        var tmp_pen = pen_arr[pen_arr.length - 1];
        var points = tmp_pen.getPoints();
        points.push({x:mousePos.x,y:mousePos.y});
        tmp_pen.setPoints(points);
        layer.drawScene(); 
    }
}

function mouseUp(){
    flag = false;    
}

请检查此结果。

在这里您可以查看一些绘图示例
有两个按钮“填充”和“绘制”
您可以通过单击“绘图”按钮来绘制笔
我们必须通过单击“填充”按钮来设置填充颜色
点击“填充”按钮后,我们可以点击舞台上的任意一点。
那个时候,我们要设置封闭区域的填充颜色

所以我的问题是“我必须在关闭区域设置填充颜色”

【问题讨论】:

  • 请把相关代码贴在这里。 SO 不允许链接到没有代码的 jsfiddle;我很惊讶 jsbin 通过了过滤器。另外,请告诉我们您当前的解决方案尝试遇到了什么问题。
  • 问题是什么?

标签: jquery html canvas


【解决方案1】:

我不会给你代码。
看看这个:

http://www.html5canvastutorials.com/tutorials/html5-canvas-shape-fill/

【讨论】:

  • 请再次检查我的问题
  • 哦,对不起。您正在绘制和填充。等一下,我会找到补救措施的。
  • 谢谢,我会等待一个好消息。你可以查看jsbin.com/omuwor/3/edit
  • 我找到了这个,你可以用draws做到这一点:williammalone.com/articles/…
  • 谢谢,很高兴它有帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-24
  • 2012-11-05
相关资源
最近更新 更多