JavaScript图形实例:阿基米德螺线】的更多相关文章

1.阿基米德螺线 阿基米德螺线亦称“等速螺线”.当一点P沿动射线OP以等速率运动的同时,该射线又以等角速度绕点O旋转,点P的轨迹称为“阿基米德螺线”. 阿基米德螺线的笛卡尔坐标方程式为: r=10*(1+t) x=r*cos(t * 360) y=r*sin(t *360) 编写如下的HTML代码. <!DOCTYPE html> <head> <title>阿基米德螺线</title> <script type="text/javascri…
数学中有各式各样富含诗意的曲线,螺旋线就是其中比较特别的一类.螺旋线这个名词来源于希腊文,它的原意是“旋卷”或“缠卷”.例如,平面螺旋线便是以一个固定点开始向外逐圈旋绕而形成的曲线. 阿基米德螺线和黄金螺旋线就是典型的螺旋线.下面我们探讨一种典型的螺旋线:圆内螺线. 1.圆内螺线的形成方式 在固定的大圆中内切一个运动的小圆,在小圆滚动的过程中,其上一个定点P所形成的轨迹,即为圆内螺线.点P会随着两圆半径比值的不同而出现不同轨迹.例如,当小圆半径等于大圆的四分之一时,形成的轨迹则是星形线,如图1所…
这学期开始进入HFSS的学习,这是软件应该是电磁相关专业必须掌握的软件之一.前几天图老师发布第一个模型设计任务,是关于平面正弦加载阿基米德螺旋线,拿到具体要求后,就去网上找资料,发现有关HFSS的资料其实挺少的,而且有不少人都有相似的疑问,并且没有给出详细的解决方法.下面是我在对平面正弦加载阿基米德螺旋线模型设计的具体步骤. 首先是老师的给设计内容,其实比较简单,就曲线函数的解决和完成后的模型图 分析曲线函数各参数的作用 通过曲线函数得x与y的坐标 x=(a+b*(Θ+c*sin(Θ*D)))c…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1071 题意:给出抛物线的顶点和它与一直线的两交点,求他们围成的面积: 思路: 可以直接求出他们的方程式,再积分,这个方法就不说了: 偶然看见另一个解法,觉得蛮有意思的,就记一下好了.. 抛物线与直线为成的面积等于直线的平行线与抛物线的切点和该直线与抛物线两交点组成的三角形面积 s*4/3:(抛物线弓形面积公式等于:以割线为底,以平行于底的切线的切点为顶点的内接三角形的4/3,即:抛物线弓形面积=S+…
转自:https://github.com/ceys/jdml/wiki/ALS 阿基米德项目ALS矩阵分解算法应用案例 编写人:ceys/youyis 最后更新时间:2014.5.12 一.算法描述 1.原理 问题描述 ALS的矩阵分解算法常应用于推荐系统中,将用户(user)对商品(item)的评分矩阵,分解为用户对商品隐含特征的偏好矩阵,和商品在隐含特征上的映射矩阵.与传统的矩阵分解SVD方法来分解矩阵R($R\in \mathbb{R}^{m\times n}$)不同的是,ALS(alt…
阿基米德三角形的常见性质:抛物线:$x^2=2py,AB$为抛物线的弦,$AQ,BQ$为切线,记$Q(x_0,y_0)$则$1)k_{QA}*k_{QB}=\dfrac{p}{2x_0}$$2)k_{QA}+k_{QB}=\dfrac{y_0}{x_0}$$3)|k_{QA}-k_{QB}|=\dfrac{\sqrt{x_0^2-2py_0}}{|x_0|}$$4)S_{\Delta{ABQ}}=\dfrac{(x_0^2-2py_0)^{\frac{3}{2}}}{p}$特别的,如图$AB$是…
在“JavaScript图形实例:四瓣花型图案”和“JavaScript图形实例:蝴蝶结图案”中,我们绘制图形时,主要采用的方法是先根据给定的曲线参数方程计算出两点坐标,然后将两点用线段连接起来,线段的集合会构成一幅幅精美的图形.下面我们继续给出一些用线段构造图形的实例,供大家欣赏和借鉴. 1.莫尔花纹图案 设定曲线的坐标方程为: b=r*(1+ sin(2.5*θ)/2); x1=b*cos(θ); x2=b*cos(θ+π/4); y1=b* sin(θ); y2=b* sin(θ+π/4)…
在“JavaScript图形实例:迭代函数系统生成图形”一文中,我们介绍了采用迭代函数系统(Iterated Function System,IFS)创建分形图案的一些实例.在该文中,仿射变换函数W的一般形式为 X1=a*X0 + b*Y0 + e Y1=c*X0 + d*Y0 + f 给定不同的IFS码,可以生成不同的图形. 实际上,仿射变换函数的形式还可以是 X1= a * X0*cos(c/180) -  b * Y0*sin(d/180) + e Y1= a * X0*sin(c/180…
在“JavaScript图形实例:SierPinski三角形”中,我们介绍了SierPinski三角形的基本绘制方法,在“JavaScript图形实例:迭代函数系统生成图形”一文中,介绍了采用IFS方法生成SierPinski三角形的方法.下面再介绍两种SierPinski三角形的构造方法,以扩展知识面. 1.随机点法 采用随机点的方法可以得到SierPinski三角形.具体过程为: (1)任意取平面上三点A.B.C,组成一个三角形,并任意取三角形ABC内的一点P: (2)求出P和A.B.C三个…
旋转变换:图形上的各点绕一固定点沿圆周路径作转动称为旋转变换.可用旋转角表示旋转量的大小. 旋转变换通常约定以逆时针方向为正方向.最简单的旋转变换是以坐标原点(0,0)为旋转中心,这时,平面上一点P(x,y) 旋转了θ之后,变成点P’(x,y) ,如图1所示. 图1 点P逆时针旋转 由三角关系可得: 平面上一点P(x,y)若按顺时针方向旋转了θ之后,变成点P’(x,y) ,如图2所示. 图2 点P顺时针旋转 由三角关系可得: 1.三角形旋转 先绘制一个三角形,然后将该三角形依次顺时针旋转45°,…
我们知道在直角坐标系中,圆的方程可描述为: X=R*COS(α) Y=R*SIN(α) 用循环依次取α值为0~2π,计算出X和Y,在canvas画布中将坐标点(X,Y)用线连起来,可绘制出一个圆.编写HTML文件内容如下: <!DOCTYPE html> <head> <title>圆的绘制</title> <script type="text/javascript"> function draw(id) { var canv…
设有坐标计算公式如下: X=L*(1+SIN(4α))*COS(α) Y=L*(1+SIN(4α))*SIN(α) 用循环依次取α值为0~2π,计算出X和Y,在canvas画布中对坐标位置(X,Y)描点,可绘制出一个曲线图形.编写HTML文件内容如下: <!DOCTYPE html> <head> <title>曲线图形</title> <script type="text/javascript"> function draw…
1.1  扇形变换 将如图1所示的上边长方形的图形变换为下边的扇形图形的变换称为扇形变换. 设长方形图形中任一点P1(X1,Y1)变换为扇形图形上的点P2(X2,Y2),长方形的长为X,扇形圆心坐标为(X0,Y0),扇形半径为L,扇形与X轴的最小夹角为B,扇形弧对应夹角为C,则点P2的坐标计算公式为: X2=(L+Y1)*COS(θ)+X0 Y2=-(L+Y1)*SIN(θ)+Y0 其中: θ=C*(X-X1)/X1+B 图1  扇形变换 生成一个六瓣花型图案的基本数据,将长方形中的8个六瓣花型…
正弦曲线的坐标方程为: Y=A*SIN(X)    (A为振幅) 1.正弦曲线 在弧度为0~4π的正弦曲线上取360个点,将这些点用线连接起来,可以绘制出正弦曲线.编写如下的HTML代码. <!DOCTYPE html> <head> <title>正弦曲线的绘制</title> <script type="text/javascript"> function draw(id) { var canvas=document.ge…
圆心位于坐标原点,半径为R的圆的参数方程为 X=R*COS(θ) Y=R*SIN(θ) 在圆上取N个等分点,将这N个点首尾连接N条边,可以得到一个正N边形. 1.正多边形阵列 构造一个8行8列的正N(N为3~10)边形阵列.编写如下的HTML代码. <!DOCTYPE html> <head> <title>正多边形阵列</title> <script type="text/javascript"> function draw…
1.1  六瓣花平移变换 平移变换是指图形从一个位置到另一个位置所作的直线移动.如果要把一个位于P(x,y)的点移到新位置P’(x’,y’),如图1,则只要在原坐标上加上平移距离Tx和Ty即可. 即  x’=x+Tx y’=y+Ty 图1  点的平移 生成一个六瓣花型图案的基本数据,通过平移变换绘制8行8列共64个六瓣花型的图案. 编写如下的HTML代码. <!DOCTYPE html> <head> <title>六瓣花平移变换</title> <s…
1. 基本四瓣花型图案 根据四瓣花卉线的参数方程: t= r*(1+sin(12*θ)/5)*(0.5+sin(4*θ)/2); x=t*cos(θ)); y=t*sin(θ)); 编写如下的HTML文件. <!DOCTYPE html> <head> <title>基本的四瓣花型图案</title> <script type="text/javascript"> function draw(id) { var canvas=…
1.SierPinski三角形 Sierpinski三角形是一种分形,由波兰数学家谢尔宾斯基在1915年提出,它是一种典型的自相似集.其生成过程为: (1)取一个三角形(多数使用等边三角形): (2)沿三边中点连线,将它分成四个小三角形: (3)对上.左.右这三个小三角形重复这一过程. SierPinski三角形的生成示意如图1所示. 图1  SierPinski三角形的生成 SierPinski三角形采用递归过程易于实现,编写如下的HTML代码. <!DOCTYPE html> <he…
迭代函数系统(Iterated Function System,IFS)可以用来创建分形图案,它是分形理论的重要分支,也是分形图形处理中最富生命力而且最具有广阔应用前景的领域之一.这一工作最早可以追溯到Hutchinson于1981年对自相似集的研究.美国科学家M.F.Barnsley于1985年发展了这一分形构型系统,并命名为迭代函数系统(Iterated Function System,IFS),后来又由Stephen Demko等人将其公式化,并引入到图像合成领域中.IFS将待生成的图像看…
德国数学家David Hilbert在1891年构造了一种曲线,首先把一个正方形等分成四个小正方形,依次从西北角的正方形中心出发往南到西南正方形中心,再往东到东南角的正方形中心,再往北到东北角正方形中心,这是一次迭代:如果对四个小正方形继续上述过程,往下划分,反复进行,最终就得到一条可以填满整个正方形的曲线,这就是Hibert曲线.其生成过程如图1所示. 图1  Hilbert曲线的生成 Hilbert曲线可以采用递归过程实现,在递归处理时,连接中点的方式有4种,如图2所示. 图2  连接中心点…
1.Canvas概述 Canvas API(画布)用于在网页实时生成图像,并且可以操作图像内容,基本上它是一个可以用JavaScript操作的位图(bitmap). 要使用HTML5在浏览器窗口中绘制图形,首先需要在HTML文档中新建一个canvas网页元素.一般方法如下: <canvas id="myCanvas" width="400" height="300"> 您的浏览器不支持canvas! </canvas> 上…
用形状.大小完全相同的一种或几种平面图形进行拼接,彼此之间不留空隙.不重叠地铺成一片,就叫做这几种图形的平面镶嵌. 1.用一种多边形实现的平面镶嵌图案 我们可以采用正三角形.正方形或正六边形实现平面镶嵌. (1)用正方形平铺. 用正方形进行平面镶嵌比较简单,编写如下的HTML代码. <!DOCTYPE html> <head> <title>正方形平面镶嵌图案</title> </head> <body> <canvas id=…
1.五角星 在半径为80的圆周上取5个点,用这5个点依次首尾连接画5条线,可以绘制出一个五角星图案. 编写如下的HTML代码. <!DOCTYPE html> <head> <title>五角星(一)</title> <script type="text/javascript"> function draw(id) { var canvas=document.getElementById(id); if (canvas==nu…
1.线团图案 设立坐标计算公式为: X=R1*COS(3α)+R2*COS(14α)) Y=R1*SIN(3α)+R2 *SIN(14α)) 再用循环依次取α值为0~2π(每次增量为0.01),计算出X和Y,在canvas画布中将坐标点(X,Y)用线连起来,可绘制出一个封闭曲线图形,可得到一个线团图案. 编写如下的HTML代码. <!DOCTYPE> <html> <head> <title>线团</title> </head> &l…
在HTML5的Canvas 2D API中,可以调用arc方法绘制圆或圆弧.该方法调用格式为: context . arc(x, y, radius, startAngle, endAngle, anticlockwise) 其中:(x,y)为圆心坐标,radius为半径,startAngle和endAngle给定圆弧的开始角度和结束角度,anticlockwise给定方向,为布尔类型,规定应该逆时针还是顺时针绘图.False = 顺时针,true = 逆时针. 例如,编写如下的HTML文件.…
1.简单纺织物图案 先在HTML页面中设置一个画布. <canvas id="myCanvas" width="360" height="240"> </canvas> 再在定义的这块360*240的canvas(画布)上面用二重循环绘制纺织物图案. 绘制图案的基本思想是:将画布分成6行8列的子块,即每个子块的宽度为60,高度为30.在每个子块中按规律交错地绘制11条横线或21条竖线. 可编写如下的HTML代码. <…
1.窗花基本框线 设定曲线的坐标方程为: n=25; r=100; x=r/n*cos(5*θ)+r*cos(θ); y=r/n*sin(5*θ)+r*sin(θ);          (0≤θ≤2π) 编写如下的HTML代码. <!DOCTYPE html> <head> <title>窗花基本框线</title> <script type="text/javascript"> function draw(id) { var…
观察自然界中树的分叉,一根主干生长出两个侧干,每个侧干又长出两个侧干,以此类推,便生长出疏密有致的结构.这样的生长结构,使用递归算法可以模拟出来. 例如,分叉的侧干按45°的偏转角度进行生长的递归示意图如图1所示. 图1  生成树的递归示意图 按照树分叉生长侧干的递归思想,编写如下的HTML代码. <!DOCTYPE html> <head> <title>递归分形树(一)</title> </head> <body> <can…
Koch曲线的构造过程是:取一条长度为L0的直线段,将其三等分,保留两端的线段,将中间的一段改换成夹角为60度的两个等长直线:再将长度为L0/3的4个直线段分别进行三等分,并将它们中间的一段均改换成夹角为60度的两段长为L0/9的直线段:重复以上操作直至无穷,可得以一条具有自相似结构的折线,如图1所示. 图1  Koch曲线的生成 Koch曲线采用递归过程易于实现,编写如下的HTML代码. <!DOCTYPE html> <head> <title>Koch曲线<…
H分形是由一个字母H演化出迷宫一样场景的分形图案,其构造过程是:取一个中心点(x,y),以此中心点绘制一条长为L的水平直线和两条长为H的竖直直线,构成一个字母“H”的形状:再以两条竖直直线的上下共4个端点为中心点,分别绘制一条长为L/2的水平直线和两条长为H/2的竖直直线:重复以上操作直至达到要求的层数,可以绘制出H分形图案,如图1所示. 图1  H分形图案的生成 H分形采用递归过程易于实现,编写如下的HTML代码. <!DOCTYPE html> <head> <title…