使用 svg.js 清除并重新绘制

我想使用 svg.js 绘制一些元素,然后清除画布并绘制新元素。我正在使用draw.clear(),但是当我重新绘制元素时,它们不可见。这种方法正确还是我错过了什么?我也尝试过删除()

var width = 500;

var height = 500;


var pos_x = 0;

var pos_y = 0;


var texto = [];

var grupo = [];

var rect = [];

var clip = [];

var random_rotation = [];


var latino = 'ABCDEFGHIJKLMNOPQRSTUVXYZ'.split('');

var cirilico = 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯ'.split('');

var hebreo = 'אבגדהוזיךכל   םמןנסעףפפצקחט   '.split('');

var griego = 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨ'.split('');

var arabe = 'ابتثجحخدذرزسشصضطظعغفقكلمنهويةءأإ'.split('');

var coreano = 'ㅏㅑㅓㅕㅗㅛㅜㅠㅡㅣㅐㅒㅔㅖㅘㅙㅚㅝㅞㅟㅢㄱㄴㄷㄹㅁㅂㅅㅇㅈㅊㅋㅌㅍㅎㄲㄸㅃㅆㅉㄳㄵㄶㄺㄻㄿㄽㄾㄿㅀㅄ'.split('');

var glagolitico = 'ⰀⰁⰂⰃⰄⰅⰆⰇⰈⰉⰊⰋⰌⰍⰎⰏⰐⰑⰒⰓⰔⰕⰖⰗⰘⰙⰚⰛⰜⰝⰞⰟⰠⰡⰢⰣⰤⰥⰦⰧⰨⰩⰪⰫⰬⰭⰮ'.split('');

var hiragana = 'あかさたなはまやらわがざだばぱいきしちにひみり(ゐ)ぎじぢびぴうくすつぬふむゆるぐずづぶぷえけせてねへめれ(ゑ)げぜでべぺおこそとのほもよろをごぞどぼぽ'.split('');

var katakana = 'アカサタナハマヤラワガザダバパヴァイキシチニヒミリ(ヰ)ギジヂビピヴィウクスツヌフムユルグズヅブプヴエケセテネヘメレ(ヱ)ゲゼデベペヴェオコソトノホモヨロヲゴゾドボポヴォ'.split('');


var sistemas = [latino, cirilico, hebreo, griego, arabe, coreano, glagolitico, hiragana, katakana];


var alfabeto = [];

var letra = [];


var draw = SVG().addTo('.container').size(width, height).attr({id: 'svg'}); 


function getRndInteger(min, max) {

  return Math.floor(Math.random() * (max - min + 1)) + min;

}


function getRndFloat(min, max) {

  return (Math.random() * (max - min)) + min;

}

这是我正在尝试创建的程序的简化版本。将来我想每当用户单击时清除并重新绘制。


慕虎7371278
浏览 298回答 1
1回答

月关宝盒

您的代码中的问题不是clear()方法。您正在使用全局变量pos_x并且pos_y正在递增它们。在您的第二张图中,图像位于可见区域之外。要解决您的问题,请在函数的开头初始化这些变量grafema:// ...function grafema() {&nbsp; &nbsp; pos_x = 0;&nbsp; &nbsp; pos_y = 0;&nbsp; &nbsp; for (var i = 0; i <= 3; i++) {&nbsp; &nbsp; &nbsp; &nbsp; // ...无限绘图的执行示例:https://jsbin.com/mehuholiwo/edit?js,output
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5