为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕虎7371278 2023-10-30 20:37:31
我想使用 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;}这是我正在尝试创建的程序的简化版本。将来我想每当用户单击时清除并重新绘制。
查看完整描述

1 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

您的代码中的问题不是clear()方法。您正在使用全局变量pos_x并且pos_y正在递增它们。在您的第二张图中,图像位于可见区域之外。要解决您的问题,请在函数的开头初始化这些变量grafema:


// ...

function grafema() {

    pos_x = 0;

    pos_y = 0;

    for (var i = 0; i <= 3; i++) {

        // ...

无限绘图的执行示例:


https://jsbin.com/mehuholiwo/edit?js,output


查看完整回答
反对 回复 2023-10-30
  • 1 回答
  • 0 关注
  • 288 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信