MATLAB 數理展示 旋轉的錯覺

2021-10-20 02:34:42 字數 3813 閱讀 1376

描述:當小圓半徑為大圓一半,且小圓在大圓中做純滾動運動時,小圓上的各點運動軌跡均為直線,

試驗效果

完整**:

function pointonlineincircle

(n)if nargin<

1||n<

3 n=4;

end%

0.2157

0.3765

0.5725

%0.3098

0.5059

0.7412

fig=gcf;

fig.name=

'polic'

;fig.position=[50

50600

600]

;fig.numbertitle=

'off'

;fig.menubar=

'none'

;ax=

axes

(fig)

;ax.position=[0

011]

;ax.xlim=[-

22];

ax.ylim=[-

22];

ax.xcolor=

'none'

;ax.ycolor=

'none'

;hold

(ax,

'on');

% grid on

thetab=0;

thetas=0;

pntstheta=0:

2*pi/n:

2*pi;

for i=1:

(length

(pntstheta)-1

)plot([

cos(

pntstheta

(i))

,cos

(pntstheta

(i)+pi)

].*2,.

..[sin

(pntstheta

(i))

,sin

(pntstheta

(i)+pi)

].*2,.

..'color',[

0.80.8

0.8]

,'linewidth'

,1.5

)end

ifmod

(n,2)==

0for i=1:

(length

(pntstheta)-1

)plot([

cos(

pntstheta

(i)+

2*pi/n/2)

,cos

(pntstheta

(i)+

2*pi/n/

2+pi)

].*2,.

..[sin

(pntstheta

(i)+

2*pi/n/2)

,sin

(pntstheta

(i)+

2*pi/n/

2+pi)

].*2,.

..'color',[

0.80.8

0.8]

,'linewidth'

,1.5

) end

endtempt=0:

0.1:

2*pi+

0.1;

cpnts=

[cos

(tempt)

;sin

(tempt)];

plot

(cpnts(1

,:).*2

,cpnts(2

,:).*2

,'color',[

0.2098

0.4059

0.6412],

'linewidth',2

);scirclehdl=

plot

(cos

(thetab)

+cpnts(1

,:),

sin(thetab)

+cpnts(2

,:),

...'color',[

0.3098

0.5059

0.7412],

'linewidth',2

);pntshdl=

plot

(cos

(pntstheta+thetas)

+cos

(thetab),.

..sin(pntstheta+thetas)

+sin

(thetab),.

..'color',[

0.2157

0.3765

0.5725],

'linewidth',2

,'marker'

,'o',.

..'marke***cecolor',[

000]

,'markeredgecolor',[

000]

,'markersize',6

);patchhdl=

fill

(cos

(pntstheta(1

:end-1)

+thetas)

+cos

(thetab),.

..sin(

pntstheta(1

:end-1)

+thetas)

+sin

(thetab),.

..[0.8500

0.3250

0.0980],

'edgecolor'

,'none'

,'facealpha'

,0.1);

while

1 thetab=thetab-

2*pi/

200;

thetas=thetas+

2*pi/

200;

scirclehdl.xdata=

cos(thetab)

+cpnts(1

,:);

scirclehdl.ydata=

sin(thetab)

+cpnts(2

,:);

pntshdl.xdata=

cos(pntstheta+thetas)

+cos

(thetab)

; pntshdl.ydata=

sin(pntstheta+thetas)

+sin

(thetab)

; patchhdl.xdata=

cos(

pntstheta(1

:end-1)

+thetas)

+cos

(thetab)

; patchhdl.ydata=

sin(

pntstheta(1

:end-1)

+thetas)

+sin

(thetab)

;pause

(0.05);

endend

Python資料數理

我使用的是mysql,先看一下資料庫資訊 學生資訊表,表名為test11 12 班級專業表,表名test11 12 使用的python庫有pandas,numpy,首先先看一下要求 使用的python庫有pandas,numpy,首先先看一下要求 1 使用python讀取資料,新增專業資訊。2 對為...

多行打點展示 單行打點展示

box的高度 height 100rpx 超出隱藏 overflow hidden 設定盒子樣式,webkit 是相容字首 display webkit box 設定盒子參考方式 webkit box orient vertical 設定超出多少行顯示省略號 webkit line clamp 2 ...

SetBkMode函式理解

輸出的字串時,發現存在背景色,這樣的輸出是破壞背景的。那需要使用什麼方法來保持背景不變,而又能輸出紅色的字串呢?比如按鈕的文字顏色是黑色的,而背景是灰色的。這就需要使用setbkmode函式來設定drawtext函式的輸出方式,顯示裝置共有兩種輸出方式 opaque和transparent。opaq...