การสร้างวงกลมด้วย MATLAB


เห็นมีคำค้นการสร้างวงกลมด้วย MATLAB ไม่ทราบว่าคนค้นได้คำตอบหรือยัง ก็ถือ
โอกาสเขียนวิธีการไว้ตรงนี้เลย เผื่อว่าคนที่ค้นจะกลับมาอีกแล้วจะได้คำตอบ

ว่ากันตามตรงการสร้างวงกลมด้วย MATLAB ถือเป็นปัญหาเส้นผมบังภูเขานะครับ
สมการวงกลมนั้นมีลักษณะดังนี้

x^2+y^2 = r^2

โดยที่ r คือรัศมีของวงกลม ถ้าผู้ต้องการวาดวงกลมด้วย MATLAB เอาเส้นผมออก
ก็จะพบว่าจริง ๆ แล้วเราสามารถเขียนสมการข้างต้นได้ดังนี้

r\sin^2\theta + r\cos^2\theta = r

โดยให้ค่าบนแกน y คือ r\sin\theta  และค่าบนแกน x คือ r\cos\theta
แค่นี้เราก็สามารถนำมาสร้างคำสั่งของ MATLAB ได้แล้วง่าย ๆ ดังนี้

theta = 0:0.1:2*pi;
r = 1;
y = r*sin(theta);
x = r*cos(theta);
plot(x,y);

ถ้าอยากทำเป็นฟังก์ชันก็แค่เขียนให้รับค่ารัศมีเท่านั้นก็พอ แค่นี้ก็คงประยุกต์ต่อไปได้ว่าจะ
ทำวงรีต่อไปทำอย่างไร แต่พอเป็นวงรีแล้วคุณจะหมุนวงรีได้หรือเปล่าอันนั้นเป็นขั้นสูงต่อไป

Advertisements

5 comments on “การสร้างวงกลมด้วย MATLAB

  1. Pingback: วาดวงรีด้วย MATLAB « LaTeX and MATLAB for Thai people

  2. ขอแสดงความคิดเห็นหน่อยนะครับ

    สำหรับสมการในบรรทัด 7เขียนในรูป

    r*sin(theta)+ r*cos(theta) = r

    ยังไม่ถูกต้องนะครับ เพราะสมการที่เขียนข้างต้นนั้นจะเป็นจริงเมื่อ r=0 เท่านั้น แต่เนื่องจากวงกลมจริงๆ r>0 นะ ผมคิดว่าอาจจะเป็น typing error หรืออย่างไรไม่ทราบ ดังนั้นที่ถูกก็คือ

    r*(sin(theta))^2+ r*(cos(theta))^2 = r

    ลองพิสูจน์ดู
    นำ r คูณทั้งสองข้างของสมการ จะได้

    r^2*(sin(theta))^2+ r^2*(cos(theta))^2 = r^2

    (r*sin(theta))^2+ (r*cos(theta))^2 = r^2

    แต่ x=r*cos(theta) และั y=r*sin(theta)
    ดังนั้นจะได้

    y^2+ x^2 = r^2

    ปล. ขอบคุณมากครับสำหรับโค๊ด matlab น่าสนใจมากครับ ผมก็ใช้โปรแกรมนี้อยู่เหมือนกัน

  3. ถ้าวงกลมไม่ใช้ที่จุด 0,0 แต่เป็นที่จุดใดๆดังสมการ
    (x-h)^2 + (y-k)^2 =r^2

    จะเขียน code ได้ยังงัยคะ ขอบคุณมากค่ะ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s