2016-12-08 5 views
0

8 포인트가 직선으로 움직이는 것을 보여주는 YouTube 비디오를 다시 만들어야했지만 가장자리는 둥글게 굴려졌습니다. 나는 결국 프로그램을 만들었지 만 일반화하려고 노력하면서 다른 모양으로 만들 수 있습니다. 이전에 사용한 코드를 사용했지만 코드와 함께 작동하는 순서쌍을 만드는 데 문제가 있습니다. 컴파일 할 때마다 포인트가 쌍으로 정렬되어야한다는 오류가 발생하지만 두 테이블을 쌍으로 정렬하는 방법을 알아낼 수 없습니다. 당신은 범위 지정 문제가mathematica의 두 테이블에서 순서쌍을 만들었습니다.

p = 8; (*Number of points*) 
\[Phi] = \[Pi]/p; (*Phase Shift*) 
n = 1; \ (*Some integer*) 
nump = 8; (* Number of points*) 
total = nump - 1; (* Shift number of points by -1*) 

w[t_] := t^n; (* Random angular frequency*) 
\[Theta][q_] = \[Phi]*q; 
A1[q_] := Cos[\[Theta][q]]; 
A2[q_] := Sin[\[Theta][q]]; 
x[t_] = A1[q]*Cos[w[t] + \[Theta][q]]; 
y[t_] = A2[q]*Cos[w[t] + \[Theta][q]]; 
x1t = Table[ A1[q]*Cos[w[t] + \[Theta][q]], {q, 0, total}]; 
y1t = Table[ A2[q]*Cos[w[t] + \[Theta][q]], {q, 0, total}]; 



(*mylist = Transpose[List[x1t,y1t]]*) 
mylist = Flatten[{x1t, y1t}, {2}] 


pcircle = 
ParametricPlot[{Transpose[List[x1t, y1t]], {Cos[t], Sin[t]}}, {t, 0, 
2 \[Pi]}, PlotLegends -> "Expressions"] 
Animate[Show[pcircle, 
Graphics[{PointSize[Large], Black, 
Point[Dynamic[{Flatten[{x1t, y1t}, {2}]}]]}]], {t, 0, 2 \[Pi], 
AppearanceElements -> None}] 

답변

0

는 애니메이션 반복자 tx1t,y1t의 글로벌 t와 동일하지 않습니다. 이 작품 :

Animate[Show[pcircle, 
    Graphics[{PointSize[Large], Black, 
    Point[Dynamic[{Flatten[{x1t,y1t}/. t -> ta, {2}]}]]}]], {ta, 0, 2 \[Pi], 
    AppearanceElements -> None}] 

당신은 또한 명시 적으로 사방 x1t[t]를 사용 t

x1t[t_] = ... 

의 기능을 x1t함으로써이 문제를 해결할 수 있습니다.