數與圖(12)——畫橢圓

2021-02-18 老巫婆的程序世界

在上篇文章《數與圖——整理與分享》的末尾有一個二維碼,那是一個下載連結,是截止到彼時的《數與圖》程序的源文件「畫橢圓.aia」。已經下載了該文件的讀者會發現其中包含了畫橢圓的程序,但那還不是最終的程序。本文將完成與繪製橢圓相關的程序,並討論橢圓方程中常數a、b對橢圓形狀及焦點位置的影響。

 

在高中數學中,橢圓的標準方程寫作

 

本文只討論方程⑴的情況。

 

由⑴式可以求出函數y的表達式

這正是我們在繪圖程序中需要的表達式。

 

方程⑴中的a、b稱為橢圓的長軸及短軸,表示橢圓在x、y軸正方向上的最大值。描述橢圓的另一個特性是焦點,橢圓有兩個焦點,方程⑴的焦點在x軸上,它們的坐標分別為(-c,0)及(c,0),其中

我們將在繪製橢圓的同時,在坐標軸上標記焦點的位置,以便比較長短軸的比例對焦點位置的影響。

 

打開上篇文章中的項目,在設計視圖中,將「畫曲線按鈕」改名為「畫橢圓按鈕」,按鈕的顯示文本改為「畫橢圓」。本文中即將繪製的橢圓其長軸最大為20,短軸小於或等於20,因此坐標系中兩個坐標軸的最大值為20,最小值為-20,主間距為5,輔間距為1。按照這樣的設定修改8個文本輸入框中的顯示文本,結果如圖1所示。

圖1 修改用戶界面

 

圖1中顯示的1.png是橢圓方程的截圖,用圖片組件替代原來的「表達式標籤」,設置其圖片屬性為1.png。設水平布局4、水平布局5的高度為自動,屏幕的垂直對齊屬性為居上。然後切換到編程視圖,開始編寫程序。

 

一、全局變量

聲明一個全局變量a,用來保存橢圓方程中a,代碼如圖2所示。

圖2 聲明全局變量

 

二、創建有返回值過程

1、橢圓函數

該過程有四個參數,如圖3所示,其中的a、b、x分別對應於方程⑴中的各個量,參數「y大於0」為邏輯值,當該參數取值為真時,返回正的y值,否則返回負的y值。

圖3 有返回值過程——橢圓函數

 

2、橢圓焦點坐標x

該過程返回橢圓焦點的x坐標c(c>0),代碼如圖4所示。注意這個c值是平面直角坐標系中的值,在調用該值進行繪圖時,還要轉換成畫布坐標系中的值。

圖4 有返回值過程——橢圓焦點

 

三、創建無返回值過程

1、求橢圓坐標列表

這個過程複製於原來的「求繪圖坐標列表」過程,不同的是,這裡x的最大值剛好與a相等,因此循環變量的取值範圍為[-a,a]。代碼如圖5所示。

圖5 無返回值過程——求橢圓坐標列表

 

2、繪製焦點

該過程分別在橢圓的兩個焦點處畫一個實心圓,圓的半徑為5像素,代碼如圖6所示。前面提到過,焦點c的值是直角坐標系中的值,此處需要轉換為畫布坐標系中的值,這一點要格外小心。

圖6 無返回值過程——繪製焦點

 

四、事件處理程序

我們的目標是讓a保持不變,讓b從20減小到6,減小的幅度為2,針對每一組a、b,繪製一個橢圓,並標記2個焦點。在畫橢圓按鈕的點擊事件中,利用循環語句實現這一目標。為了標明橢圓與焦點的對應關係,每次循環都會改變畫筆的顏色。代碼如圖7所示。

圖7 畫橢圓按鈕的點擊事件處理程序

 

五、測試

測試的結果如圖8所示。

圖8 測試結果

 

圖中顯示了8個橢圓(其中一個是圓)以及x軸上的8對焦點,正如我們期望的,從顏色上可以區分出橢圓與焦點之間的對應關係。當b=20時,橢圓變成了圓,兩個焦點重疊在坐標系的原點。當b值在a附近逐漸變小時,焦點迅速遠離原點,但當b值在遠離a處變小時,焦點遠離原點的速度越來越慢。

 

六、討論

記得在上高中時,也曾在坐標紙上畫過橢圓,但是無論是計算,還是繪圖,都不可能像計算機這樣精確,對於焦點的位置,始終缺乏直觀的認識。直到今天,我才發現,隨著b的減小,焦點遠離原點的速度也在減小!至於這兩者之間的關係,可以用微積分的方法準確地求出,有興趣的讀者不妨試試看。

 

 

 

 

 

相關焦點

  • 橢圓規為什麼能畫出橢圓
    為什麼橢圓規能夠畫出橢圓我們已經知道,圓上所有點向著垂直於某條直徑的方向等比例壓縮,將得到橢圓。用數學語言描述就是:有一個圓O,取其一條直徑A1A2,在圓上任取一點M,過點M向直徑A1A2作垂線,設垂足為N。
  • 橢球面也可以像畫橢圓那樣畫出來
    如下圖所示,把繩子一端繫於橢圓框架的頂點A處,並讓全部繩子都位於橢圓框架所在平面的上方,再把繩子自由端從離A較近的雙曲線一支的後面繞過(接觸點為U),再從離我們最近的橢圓框架外面繞到橢圓框架下面,最後從橢圓框架的下方把自由端繫於雙曲線框架的頂點B'上。然後,把繩子拉緊。整個繩子如下圖中的黑色折線AUPVB'所示。
  • 亳州一中學生發明橢圓新畫器 有了它橢圓可以隨便畫
    圖為譚瑤瑤和她的橢圓新畫器畫圓有圓規,畫三角形有三角架,畫方形和直線等,可以用直尺。可是,如果想準確畫出大小不一、圓度各異的橢圓形,該怎麼辦呢?為了解決這個問題,亳州一中南校女生譚瑤瑤設計出了一個橢圓新畫器,橢圓想怎麼畫,隨你便!橢圓新畫器的整個外形看起來像個小柱體,外層是一個接近圓形的正五邊形紙質柱盒,裡面有一個可內外拉伸、且標有刻度的圓柱體。主體一端有一個金屬鉤,另一端是可伸縮線。
  • 一種畫橢圓的新方法
    今天介紹一種全新的也是很高超的畫圓錐曲線(包括橢圓、雙曲線、拋物線)的方法。這種方法利用了交比的不變性。第一步:有一條直線l,有兩個點O和O'。有以點O為射影中心的線束(藍色)和以點O'為射影中心的線束(粉色)「照射」到直線l上。
  • 畫圓用圓規,畫橢圓用什麼
    本報訊 你也許用過圓規畫圓,但你用過儀器畫出過橢圓嗎?鄭州一學生高中時發明了「橢圓繪圖儀」:和圓規外貌相似,既可以畫圓,也可以畫橢圓。鍾建明現在是鄭州大學金融學專業的大四學生,偶像是錢學森。2006年,他還是鄭州四十七中一名高二的學生。上課時,看著數學老師隨手畫出很不標準的橢圓,鍾建明開始思考,難道沒有一種規範畫橢圓的儀器嗎?
  • 用SolidWorks曲面畫一個雙管連接橢圓
    建模過程1.在【上視基準面】畫兩個圓。2.【曲面拉伸】給定深度:5 。3.新建【基準面】,距離上視基準面:2 。4.在【基準面1】上畫一個橢圓。5.新建【基準面2】,距離上視基準面:7.6 。6.在【基準面2】上畫橢圓。7.在【前視基準面】畫一根樣條曲線 。(鏡像到左邊)8.
  • 零基礎徒手畫直線、弧線、橢圓、正圓有哪些技巧?該怎樣練習?|羅技思維
    對畫產品很有幫助三、【運筆的手勢】以肘關節為軸,鎖定腕關節7,以手肘為中心點,握緊筆快速左右滑動8,以手腕為中心點,握緊筆快速左右滑動9,水平直線與弧線結合混合練習10,正向弧線與反向弧線結合大間距練習11,正向弧線與反向弧線結合小間距練習12,弧線排列交叉練習
  • 用SolidWorks畫的橢圓殼體,圖形並不複雜,都是些常規操作
    此圖是用SolidWorks2015建模,用KeyShot 8渲染。建模步驟:1.工具——方程式:輸入參數。2.在上視基準面畫橢圓和圓弧,剪裁掉半個橢圓。10.在藍色面上草繪,畫矩形、轉實體引用邊線、剪裁矩形。11.拉伸:1.5 。12.在右視面上草繪圖形。13.兩側對稱拉伸:5 。14.在拉伸實體面上上畫矩形。
  • 垂足曲線 三角板畫法畫橢圓、拋物線、......
    點擊上面「邵勇」後面的籃色字「數學教學研究」,訂閱本微信公眾號
  • 用SW畫一個雙橢圓曲面圖形,此圖建模思路簡單,只是曲線有點繁瑣
    (雙橢圓曲線 .igs文件在6月11日文件夾裡,也可以自己畫一個這樣的草圖)2.在右視基準面上草繪圖形,注意穿透和相切關係。3.新建基準面,參考上視基準面和上一步草圖的端點。4.在新基準面上畫圓弧,也可以是樣條曲線。
  • 「橢圓規」的數學原理
    如果在上面動圖中橙色動杆外端點安裝上鉛筆,那麼,它畫出來的圖形就是橢圓。這是為什麼呢?上圖中線段AB及AP的長度都是確定的。點A位於x軸正半軸、點B位於y軸正半軸時,點P的軌跡為橢圓位於第四象限的部分。點A還可以位於x軸的負半軸,點B也可以位於y軸的負半軸。於是,就可以畫出位於其他三個象限(第一、二、三象限)的橢圓部分。加上點A與點B運動到坐標原點的情況(軌跡點對應為橢圓與坐標軸的交點,即橢圓的四個頂點),最終得到全部橢圓。
  • 橢圓的一個鮮為人知的性質
    橢圓有一個鮮為人知的性質,很有趣。我今天來講一講。這個性質就是,橢圓上任意一點到兩個坐標軸的距離之和小於等於兩軸頂點之間的距離,大於等於短半軸長。等號都可以取到。具體來說,如下圖所示,橢圓上的點M(x, y)到x軸和y軸的距離之和(圖中紅色折線的長度)小於等於兩軸頂點(比如A2和B2)之間的距離(比如圖中淺藍色線段A2B2),大於等於短半軸長b。
  • 科普 | 極簡橢圓曲線密碼學入門
    公鑰密碼學的運作方式如下圖所示:上圖顯示了兩個密鑰:公鑰和私鑰。這兩個密鑰分別用來加密和解密數據。這樣一來,加密數據在傳輸的過程中,全世界的人都可以看到(密文),卻無法知道其內容。假設 Facebook 將要收到來自川普的私信。Facebook 需要確保川普在通過網際網路發送私信時,沒有中間方(國家安全局、網際網路服務提供商)能夠讀取該私信。
  • 02.橢圓的正確畫法|工業設計草圖手繪學習
    經常看到很多人橢圓怎麼都畫不好,之前有發過一篇畫橢圓的公眾號文章,前幾天微博上發了一些橢圓訓練的圖片,很多人給我留言讓我講下如何畫。所以找了幾個比較有代表性的視頻配合圖片給大家講怎麼畫正確的橢圓。1一直覺得橢圓和圓這樣的基礎訓練對設計師很重要,徒手能畫出正確的橢圓是不容易的,但是堅持正確的方法一般用不了一兩個月就能畫好。橢圓是圓的透視效果,很多產品都會有橢圓和圓形態,其他形態都畫好了,唯獨經常橢圓畫的變形,最典型的案例就是汽車手繪,輪胎是很容易看出透視不對的。
  • 橢圓方程
    課本例的真正目的首先還是讓學生掌握橢圓的定義,及簡單應用,其次求橢圓方程的方法;從能力角度來分析,課本意在三個,其一是數形結合,其二是方程思想,其三是計算能力。如果還是覺得求橢圓方程計算量太大,三個方程解三個未知數,還是有點煩瑣,容易出錯,請看江總小微課,妙殺幾何性質離心率求橢圓方程.
  • 知識來了 | ECC橢圓曲線密碼學簡介
    前面介紹的橢圓曲線都是基於有理數的,但是計算機運算浮點數(小數)的速度較慢,更重要的是四捨五入浮點數會產生誤差例如考慮y2=x3-7x+10(mod 19)的集合,該集合中所有的元素如下圖所示。模運算把發散的橢圓曲線映射到19*19的正方形空間中,並且保持了原有曲線的上下對稱特性。
  • 解析偏振橢圓
    這樣就得到一個關於Ex和Ey兩個變量的非標準形式橢圓方程,因為用它可以表徵偏振,所以稱之為偏振橢圓。對於z軸上固定的一點,電場矢量的頂點在Ex-Ey平面內以橢圓軌跡做周期旋轉運動。偏振橢圓下圖是一個偏振橢圓示例,在其外圍畫一個矩形,邊長分別等於兩分量振幅的兩倍。
  • AutoCAD:繪製橢圓
    「繪圖」工具欄「橢圓」按鈕也可以選擇「繪圖」|「橢圓」|「中心點」命令,指定橢圓中心、一個軸的端點(主軸)以及另一個軸的半軸長度繪製橢圓;還可以選擇「繪圖」|「橢圓」|「軸、端點」圖 1-1 繪製橢圓如果在「草圖設置」對話框的「捕捉和柵格」選項卡中的「捕捉類型和樣式」選項區域中選擇「等軸測捕捉」單選按鈕,則調用 ELLIPSE命令,並顯示「指定橢圓的軸端點或
  • CAXA二維CAD教程:如何8等分橢圓
    CAXA電子圖板(二維CAD)中,橢圓的2、4等分只需打上中心線就可以輕易的實現,如何實現橢圓的8等分、16等分呢?這裡介紹一種巧用CAXA電子圖板2013R1的智能捕捉夾點功能來實現的方法,一起來操作吧!首先,用
  • 用高中的方法解北大2020強基計劃極線問題(圓加橢圓再生橢圓)
    就是上圖的BC,其中AB,AC是橢圓切線,這與圓裡面的切點弦一樣的概念,這個切點弦就是大學將學的「極線」,那它的方程長啥樣:我們試著先畫一些特殊情況:BC與x,y軸的交點先算出來再嘗試同一個圖,多畫一些普通狀況:慢慢的,你可能會猜到軌跡是誰: