MATLAB 数理展示:旋转的错觉

2024-01-08 13:48

本文主要是介绍MATLAB 数理展示:旋转的错觉,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考视频:https://b23.tv/QRQpHi
描述:当小圆半径为大圆一半,且小圆在大圆中做纯滚动运动时,小圆上的各点运动轨迹均为直线,
试验效果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完整代码:

function PointOnLineInCircle(N)
if nargin<1||N<3N=4;
end
% 0.2157    0.3765    0.5725
% 0.3098    0.5059    0.7412fig=gcf;
fig.Name='PoLiC';
fig.Position=[50 50 600 600];
fig.NumberTitle='off';
fig.MenuBar='none';ax=axes(fig);
ax.Position=[0 0 1 1];
ax.XLim=[-2 2];
ax.YLim=[-2 2];
ax.XColor='none';
ax.YColor='none';
hold(ax,'on');
% grid onthetaB=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.8 0.8 0.8],'LineWidth',1.5)
end
if mod(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.8 0.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',...'MarkerFaceColor',[0 0 0],'MarkerEdgeColor',[0 0 0],'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 1thetaB=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

这篇关于MATLAB 数理展示:旋转的错觉的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/583650

相关文章

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

css实现图片旋转功能

《css实现图片旋转功能》:本文主要介绍了四种CSS变换效果:图片旋转90度、水平翻转、垂直翻转,并附带了相应的代码示例,详细内容请阅读本文,希望能对你有所帮助... 一 css实现图片旋转90度.icon{ -moz-transform:rotate(-90deg); -webkit-transfo

Qt QWidget实现图片旋转动画

《QtQWidget实现图片旋转动画》这篇文章主要为大家详细介绍了如何使用了Qt和QWidget实现图片旋转动画效果,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、效果展示二、源码分享本例程通过QGraphicsView实现svg格式图片旋转。.hpjavascript

poj 2187 凸包or旋转qia壳法

题意: 给n(50000)个点,求这些点与点之间距离最大的距离。 解析: 先求凸包然后暴力。 或者旋转卡壳大法。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <s

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk

matlab读取NC文件(含group)

matlab读取NC文件(含group): NC文件数据结构: 代码: % 打开 NetCDF 文件filename = 'your_file.nc'; % 替换为你的文件名% 使用 netcdf.open 函数打开文件ncid = netcdf.open(filename, 'NC_NOWRITE');% 查看文件中的组% 假设我们想读取名为 "group1" 的组groupName

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

C# double[] 和Matlab数组MWArray[]转换

C# double[] 转换成MWArray[], 直接赋值就行             MWNumericArray[] ma = new MWNumericArray[4];             double[] dT = new double[] { 0 };             double[] dT1 = new double[] { 0,2 };

起点中文网防止网页调试的代码展示

起点中文网对爬虫非常敏感。如图,想在页面启用调试后会显示“已在调试程序中暂停”。 选择停用断点并继续运行后会造成cpu占用率升高电脑卡顿。 经简单分析网站使用了js代码用于防止调试并在强制继续运行后造成电脑卡顿,代码如下: function A(A, B) {if (null != B && "undefined" != typeof Symbol && B[Symbol.hasInstan

libsvm在matlab中的使用方法

原文地址:libsvm在matlab中的使用方法 作者: lwenqu_8lbsk 前段时间,gyp326曾在论坛里问libsvm如何在matlab中使用,我还奇怪,认为libsvm是C的程序,应该不能。没想到今天又有人问道,难道matlab真的能运行libsvm。我到官方网站看了下,原来,真的提供了matlab的使用接口。 接口下载在: http://www.csie.ntu.edu.