행성이 태양 주위를 어떻게 회전하는지 등 주 객체를 중심으로 객체를 회전시키는 함수를 프로그래밍했습니다.함수에 새 요소를 동적으로 추가합니다.
버튼을 한 번 클릭하여 작은 태양계에 새로운 행성을 동적으로 추가하려고합니다. 그것들은 모두 SVG 요소입니다. 내 rotation(coorX, coorY, object)
함수로 태양 주위를 회전하는 새로운 요소를 동적으로 생성 할 수있는 방법을 찾는 데 어려움을 겪고 있습니다. 그들은 모두 동적으로 이름이 붙여지고 동적으로 배치되어야합니다. 이것은 나에게 너무 어렵습니다.
이 작업을 수행하기 위해 내 코드가 어떻게 표시되어야합니까? 도움말/팁에 대해 미리 감사드립니다.
var objectX = "black";
function addObject(){
objectX = "blue";
}
function rotation(coorX, coorY, object) {
\t object.side += (1.0/object.speed);
\t var ang = object.side * 2.0 * Math.PI/180.0;
\t var r = object.spin;
\t return {
\t \t x: Math.cos(ang) * r - Math.sin(ang) * r + coorX,
\t \t y: Math.sin(ang) * r + Math.cos(ang) * r + coorY
\t };
}
function rotationball (circle) {
\t var x, y, x_black, y_black, e, newpos;
\t e = document.getElementById (circle);
\t x_black = parseFloat (document.getElementById (objectX).getAttribute ("cx"));
\t y_black = parseFloat (document.getElementById (objectX).getAttribute ("cy"));
\t newpos = rotation(x_black, y_black, ball[circle]);
\t e.setAttribute ("cx", newpos.x);
\t e.setAttribute ("cy", newpos.y);
\t }
var ball = {
blue: \t {speed: 1.2, \t spin: 100, \t side: 0.0} ,
red: \t {speed: 1.2, \t spin: 200, \t side: 0.0}
\t };
function animate() {
\t rotationball("blue");
\t rotationball("red");
\t }
var animateInterval = setInterval(animate, 1000/60);
.st0{fill:black;}
.st1{fill:blue;}
.st2{fill:red;}
<div class="spinning"> <svg xmlns="http://www.w3.org/2000/svg" id="solly" viewBox="0 0 1000 600"><g id="Sun2">
\t \t <circle id="black" class="st0" cx="500" cy="300.8" r="10"/>
\t \t <circle id="blue" class="st1" cx="375.4" cy="289.7" r="10"/> \t
<circle id="red" class="st2" cx="375.4" cy="289.7" r="10"/> \t
</div>
<button type="button" onclick="addObject()">
button
</button>
여기 내 코드의 나는 또한 추가 된 각 행성은 이전에 추가 행성보다 중앙 지점 (태양)에서 조금 더 멀리 위치 할 것이라는 점을 프로그램 할 거라고.
귀하의 질문에 대한 전체 내용은 귀하의 질문에 ** 연결되어있을뿐만 아니라 **되어야합니다. 링크 썩어, 미래의 사람들에게 질문과 그 대답을 쓸모없는 만들고, 사람들이 당신을 돕기 위해 오프 사이트로 이동해서는 안됩니다.질문에 [mcve] **를 넣으십시오. Stack Snippets ('<>'도구 모음 단추)를 사용하여 실행 가능하게 만드는 것이 이상적입니다. 기타 : [* 좋은 질문을하는 방법 *] (/ help/how-to-ask) –
zessx가 친절하게 고칠 수있는 것처럼 보입니다. –