今天在翻Scratch课件时看到了一个利用Scratch画太阳系行星运转的动画,包括公转和自转,感觉很有意思。但是一看程序,各个行星的移动轨迹竟然是把圆上所有坐标写了一遍,这种操作不禁让我想到了C语言初学者为了打印一个菱形于是先在程序里用printf()把所有菱形写出来的场景,以及某科普文章中为了实现超光速飞行必须先用常规速度飞到目的地建造一个锚点的设定。当然,原课件是考虑到一二年级孩子还不会计算坐标才使用这种“笨”办法的。

对于初学者来说,画圆经常用类似“右转1度然后前进x步”的方法,但这样显然不够精确而且调整大小和圆心时也很麻烦。为了便于确定圆的大小和位置,首先想到的是(x-a)²+(y-b)²=r²,其中a、b为圆心位置,本题中我们默认在(0.0)所以简化为(²+y²=r²,这样一来设置三个变量,以x值的往复变化计算对应的y()值即可(话说博客插公式怎么这么难写)。象限变化时记得加个负号。

写完测试了一下,画圆没问题,但是画圆的过程竟然不是匀速的!因为x均匀变化的同时y对应的是一个圆弧,速度自然有快有慢,这显然不符合我们画行星轨迹的需求。想到土办法画圆时一直是匀速的,因此使用角度的均匀变化才是合适的方法。计算公式:

x1   =   x0   +   r   *   cos( a )

y1   =   y0   +   r   *   sin( a )

就这么简单,搞定!

利用数学公式在Scratch画圆的两种方法(坐标、角度)以及在教学中的实现相关推荐

  1. js获取classname值_利用js获取元素class值的两种方法

    我们有时为了达到某种效果,需要以元素的class值为条件做判断. 我们如何利用JavaScript获取元素class的值?我们先看下面代码: x=document.getElementsByTagNa ...

  2. css画三角形的两种方法

    css画三角形的两种方法 画三角形 1 border 2 css的clip-path 画三角形 1 border <div class="left-down-small" / ...

  3. c语言绘制松树图形代码,WPS怎么画松树? wps画松树的两种方法

    wps中可以绘制一些图形,该怎么绘制松树图形呢?下面我们就来看看详细的教程. 方法一: 许多小伙伴可能只知道WPS文档是一款专门用于文字编辑的软件,其他它还可以是画画,是的,你没有看错,就是画画.今天 ...

  4. MATLAB绘图笔记——画圆的几种方法

    列举了三种画圆的方法,推荐使用方法3. 方法1: filledCircle([1,3],3,100,'k'); hold on filledCircle([-0.25,4.25],1,100,'r') ...

  5. 局域网只看到少数电脑_利用局域网高速传输大文件的两种方法

    点击蓝字,关注我们 说到传输文件,我们可能很容易想到使用微信或者QQ发送文件,如果没有连接网络的话,可以考虑使用U盘或数据线,当然也可以使用第三方的共享文件,比如说茄子快传.以上方法的缺点自然是很明显 ...

  6. CDR利用修剪命令将文字一分为二的两种方法

    在做一些设计作品时,经常会使用CorelDRAW完成一些特殊字体效果,因为CDR的软件特点,所以在制作矢量图,包括文字效果时非常的方便省力.比如,使用CDR软件提供的修剪命令,可以快速将一个字分成两半 ...

  7. Endnote在latex中的应用的两种方法

    从endnote中向latex文档批量插入参考文献的两种方法 一.若是latex模板中参考文献编写的命令是: \begin{thebibliography} \bibitem{lab1}LIU M L ...

  8. WPF多线程UI更新——两种方法

    WPF多线程UI更新--两种方法 前言 在WPF中,在使用多线程在后台进行计算限制的异步操作的时候,如果在后台线程中对UI进行了修改,则会出现一个错误:(调用线程无法访问此对象,因为另一个线程拥有该对 ...

  9. php关闭gd库,详解php开启gd库的两种方法

    本文介绍在windows下开启php GD库的两种方法,GD库在php中默认是没有开启的,如果想让它支持图片处理功能,必须手动开启.有需要的朋友建议参考下本文提供的方法. 方法一: 我们最开始不知道G ...

最新文章

  1. ajax请求php保存数据格式,jQuery ajax与php进行数据交互(数据格式问题)
  2. Web Deployment Projects with Visual Studio 2005
  3. 数字图像处理:第十一章基于特征向量的变换
  4. 2021-07-29
  5. hackme_Login As Admin 0
  6. 如何在ChemDraw中打出符号π
  7. Laravel_post访问【419】问题解决方法
  8. PDC Party 即将在东莞登场
  9. python列表输出字符串,如何在python中输出utf-8字符串列表?
  10. java利用opencv降维_PCA主成分分析 特征降维 opencv实现
  11. ubuntu20.10设置桌面共享的三种方式
  12. Unity使用VS2019打开代码出现不兼容的解决方法
  13. centos 文件分割
  14. python微博情感分析,Python情感分析:鹿晗的粉丝们究竟原谅他了吗?
  15. 引用网页链接的BibTEX格式
  16. linux docker安装nginx且测试elasticsearch分词
  17. 令人拍案叫绝的Wasserstein GAN(转载)
  18. CCF推荐的中文期刊
  19. 麦克纳姆轮转速计算(运动解算)(_学习笔记__)
  20. JUNOS ISIS区域拓扑解析

热门文章

  1. Vue 项目运行失败 Module build failed: Error: Missing binding
  2. 计算机网络原理Ping、IPconfig、Nbtstat、Netstat命令详解(上)
  3. 前端工程师号称魔术师_使用graphql将rethinkdbs实时魔术带到前端
  4. 第一章:unity性能优化之内存优化
  5. python打乱迭代器_嗯哼python随机(迭代器,正则,函数自定义,异常处理)
  6. 数据体系和专题分析实战
  7. 【好书推荐:第5期】数据产品经理:实战进阶(文末赠书)
  8. [阶段4 企业开发进阶] 3. 消息队列--RabbitMQ
  9. 苹果iOS13.4.1发布,支持新旧苹果产品用户间进行FaceTime通话
  10. electron-vue项目搭建