D3.js-잠시 후 애니메이션 중단

스피어 피셔

저는이 Voronoi 다이어그램 ( http://bl.ocks.org/christophermanning/1734663 ) 을 사용하려고했고 제가하고 싶었던 것은 각 노드에 대해 임의의 움직임을 추가하여 다이어그램에서 일정한 움직임을 갖도록하는 것입니다.

이를 위해 임의의 순간에 임의 노드의 위치로 변경하는이 코드를 추가했습니다.

setInterval(function(){
vertices.forEach(function(d, i) {
    if (Math.random() < 0.05) {
      setTimeout(function() {
        angle = radius * (i+10);
        vertices[i].x = vertices[i].x * (1 + Math.random() / 20 * randomZ());
        vertices[i].y = vertices[i].y * (1 + Math.random() / 20 * randomZ());
      }, Math.random() * 1000);   
    }   
});

}, 1000);

function randomZ() {
  return (Math.random() > 0.5) ? 1 : -1;
};

코드는 잘 작동하지만 몇 초 후에 화면이 멈추고 더 이상 아무것도 움직이지 않습니다 (적어도 크롬에서는). 나는 동시에 많은 계산을하고 있다고 생각합니다.

이 문제를 해결할 방법이 있습니까?

여기에 JSFiddle이 있습니다. http://jsfiddle.net/7krkh/1/

Lars Kotthoff

이 동작이 나타나는 이유 tick는 디스플레이를 업데이트하기 위해 force 레이아웃의 이벤트를 사용하고 있기 때문 입니다. 루프는 데이터 만 수정합니다. 강제 레이아웃은 force.stop()명시 적으로 호출하지 않더라도 잠시 후 냉각되고 중지 됩니다. tick그 이후에는 더 이상 이벤트가 생성 되지 않습니다 . 이는 귀하의 경우 기본 데이터가 계속 변경되지만 디스플레이가 더 이상 업데이트되지 않음을 의미합니다.

쉬운 수정은 setInterval데이터를 변경하는 루프 (또는 오히려) 의 각 반복에서 강제 레이아웃을 다시 시작하는 것입니다.

setInterval(function(){
  // ...
  force.start();
}, 1000);

여기에서 데모를 완료 하십시오 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

잠시 후 Tomcat은 다른 API 작업을 중단합니다.

무한 CSS3 애니메이션 중 일시 중지

X 초 후에 시작되는 CSS3 애니메이션 만들기

Amazon AWS에서 잠시 후 Java 애플리케이션 실행이 중지됨

Unity2D 애니메이션이 첫 번째 애니메이션을 마친 후 중지됩니다.

애니메이션 중 및 애니메이션 완료 후 SVG가 중앙에 표시되지 않음

THREE.js-클릭시 애니메이션 중지

버튼을 누른 후 애니메이션 중지 및 시작 (Javascript)

D3js 충돌이 잠시 후 작동을 멈춤

Node JS + Socket.io 애플리케이션이 잠시 후 이벤트 수신을 중지합니다.

D3 시퀀스 선 버스트 애니메이션

패브릭 JS 애니메이션이 잠시 후 지연됩니다.

잠시 후 안드로이드 타이머 애니메이션 끊김

30 초 후 플래시 애니메이션 중지

30 초 후 플래시 애니메이션 중지

Javascript 애니메이션이 잠시 후 느려지는 이유

D3 막대 차트 애니메이션 다시 시작

CIFS 공유가 잠시 후 중단됨

CSS 3 페이지로드 후 N 초 후 애니메이션 회전 중지

d3js 먼저 애니메이션을 적용하지 마십시오.

계속 / 중단 git이 시작된 후 잠시 되돌리기

node 및 socket.io 여러 API 호출이 잠시 후 중단됩니다.

d3.js로 아크 시작 각도 애니메이션

잠시 동안 루프를 실행한 후 Node.js 애플리케이션이 중지됨

Jquery로 특정 시간 후 CSS 애니메이션 중지

Vue.js 애니메이션: 동시에가 아닌 나가기 후 입력

잠시 후 Spark 세션 중지 - Pyspark

d3.js - 애니메이션을 시뮬레이션하기 위해 추가 후 종료 적용

SwiftUI에서 중지한 후 영구 애니메이션 다시 시작

TOP 리스트

  1. 1

    Matlab의 반복 Sortino 비율

  2. 2

    ImageJ-히스토그램 빈을 변경할 때 최대, 최소 값이 변경되는 이유는 무엇입니까?

  3. 3

    Excel : 합계가 N보다 크거나 같은 상위 값 찾기

  4. 4

    C #에서 'System.DBNull'형식의 개체를 'System.String'형식으로 캐스팅 할 수 없습니다.

  5. 5

    원-사각형 충돌의 충돌 측면을 찾는 문제

  6. 6

    Oracle VirtualBox-설치를 위해 게스트를 부팅 할 때 호스트 시스템이 충돌 함

  7. 7

    어떻게 아무리 "나쁜", ANY의 SSL 인증서와 HttpClient를 사용하지합니다

  8. 8

    Ubuntu는 GUI에서 암호로 사용자를 만듭니다.

  9. 9

    잘못된 상태 예외를 발생시키는 Apache PoolingHttpClientConnectionManager

  10. 10

    Python 사전을 사용하는 동안 "ValueError : could not convert string to float :"발생

  11. 11

    openCV python을 사용하여 텍스트 문서에서 워터 마크를 제거하는 방법은 무엇입니까?

  12. 12

    Vuetify 다중 선택 구성 요소에서 클릭 한 항목의 값 가져 오기

  13. 13

    C ++ VSCode에서 같은 줄에 중괄호 서식 지정

  14. 14

    Cassandra에서 버전이 지정된 계층의 효율적인 모델링

  15. 15

    JQuery datepicker 기능이 인식되지 않거나 새 프로젝트에서 작동하지 않음

  16. 16

    cuda 11.1에서 Pytorch를 사용할 때 PyTorch가 작동하지 않음: Dataloader

  17. 17

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  18. 18

    상황에 맞는 메뉴 색상

  19. 19

    마우스 휠 JQuery 이벤트 핸들러에 대한 방향 가져 오기

  20. 20

    매개 변수에서 쿼리 객체를 선언하는 방법은 무엇입니까?

  21. 21

    Maven은 아이 프로젝트 대상 폴더를 청소하지

뜨겁다태그

보관