Тема 3: «Елементи обчислювальної геометрії», 8 годин

Повторення основних понять мови програмування C# (режим форми) 

(Перейти на сайт)

Найпростіші геометричні фігури, їх представлення та властивості

Опрацювати навчальну презентацію з теми

профільна інформатика 11 клас Обчислювальна геометрія 1 урок

More presentations from Galina

 

 

Навчальна презентація до уроку. Інструктивний матеріал для практичної роботи

Обчислювальна геометрія. Частина 2. Навчальна презентація до уроку

Лабораторна робота. Тема: Векторний добуток, напрямок повороту вектора, визначення площі многокутника

Лабораторна робота: «Побудова опуклої оболонки».

Тренувальні вправи

1. За даними координатами початку і кінця відрізка знайти довжину відрізка, координати середини даного відрізка.

Програмний код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            double x1, y1,x2,y2, d;
            x1 = double.Parse(textBox1.Text);
            x2 = double.Parse(textBox3.Text);
            y1 = double.Parse(textBox2.Text);
            y2 = double.Parse(textBox4.Text);
            d = Math.Sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
            textBox5.Text = d.ToString();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            double x1, y1, x2, y2, xc, yc;
            x1 = double.Parse(textBox1.Text);
            x2 = double.Parse(textBox3.Text);
            y1 = double.Parse(textBox2.Text);
            y2 = double.Parse(textBox4.Text);
            xc=(x2-x1)/2; 
            yc=(y2-y1)/2;
            textBox6.Text = xc.ToString();
            textBox7.Text = yc.ToString();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Close();
        }
    }
}
2. За введеними координатами двох точок написати рівняння прямої та розглянути можливі часткові випадки розміщення цієї прямої. (переглянути зразок форми та програмного коду)

Про взаємне розміщення двох точок (x1; y1) і (х2; y2) можна говорити для таких випадків: 

  • Якщо x1 = x2 і y1 != y2, то задані точки знаходяться по одній вертикалі на площині
  • Якщо  x1 != x2 і y1 = y2, то задані точки знаходяться по одній горизонталі на площині 
  • Якщо  x1 = x2 і y1 == y2, то задані точки збігаються інакше  задані точки не збігаються і не знаходяться по одній вертикалі або горизонталі на площині.

3. За дпними координатами двох точок дослідити їх взаємне розміщення на площині.

private void button1_Click(object sender, EventArgs e)
        {
            double x1, y1, x2, y2, d;
            x1 = double.Parse(textBox1.Text);
            x2 = double.Parse(textBox3.Text);
            y1 = double.Parse(textBox2.Text);
            y2 = double.Parse(textBox4.Text);
            if ((x1 == x2) && (y1 != y2))
                textBox5.Text = "Задані точки знаходяться по одній вертикалі на площині";
            if ((x1 != x2) && (y1 == y2))
                textBox5.Text = "Задані точки знаходяться по одній горизонталі на площині";
            if ((x1 == x2) && (y1 == y2))
                textBox5.Text = "Задані точки збігаються";
            if ((x1 != x2) && (y1 != y2))
                textBox5.Text = "Задані точки не збігаються і не знаходяться по одній вертикалі або горизонталі на площині";
        }

4. Дослідити випадки взаємного розміщення прямої та двох даних точок

Рекомендації. 

Нехай задана пряма загальним рівнянням ах + by + с = 0 та дві точки  (x1; y1) і (х2; y2). Ознакою того, що точка (х0; у0) лежить на прямій, є  ах0 + bуо + с =0. Якщо точка не лежить на прямій, то зрозуміло, що ах0 + bуо + с    0. А це означає, що значення ах0 + bу0 + с або додатне, або від'ємне. Оскільки пряма ах0 + bу0 + с = 0 ділить координатну площину на дві півплощини, то виявляється, що всі точки (xi; yi), які лежать одній з них, дають однаковий знак виразу   ах0 + bу0 + с.

Таким чином, можна підбити підсумок наведених міркувань. 

Якщо для двох заданих точок (x1; y1) і (х2; y2) має місце вираз (ах1 + bу1 + с)(ах2 + bу2 + с)>0, то це означатиме, що ці дві точки лежать по один бік від заданої прямої ах + by+с=0, а якщо (ах1 + bу1 + с)(ах2 + bу2 + с)< 0, то по різні.

private void button1_Click(object sender, EventArgs e)
        {
            double a, b, c, x1, y1, x2, y2;
            a = double.Parse(textBox1.Text);
            b = double.Parse(textBox2.Text);
            c = double.Parse(textBox3.Text);
            x1 = double.Parse(textBox4.Text);
            y1 = double.Parse(textBox5.Text);
            x2 = double.Parse(textBox6.Text);            
            y2 = double.Parse(textBox7.Text);
            double z1=(a*x1+b*y1+c)*(a*x2+b*y2+c);
            if (z1 > 0) textBox8.Text = "Двi данi точки лежать по один бiк вiд заданоi прямоi ах + by + с = 0";
            if (z1 == 0) textBox8.Text = "Обидві точки лежать на даній прямій ах + by+с=0";
            if (z1 < 0) textBox8.Text = "Двi данi точки лежать по різні сторони вiд заданоi прямоi ах + by + с = 0";
            if (a*x1+b*y1+c==0) textBox8.Text = "Точка M належить заданій прямій";
            if (a * x2 + b * y2 + c == 0) textBox8.Text = "Точка N належить заданій прямій";
        }

Самостійне виконання дослідження взаємного розміщення точки та відрізка, що задані відповідними координатами.

Рекомендації: 

Нехай задана деяка точка (X; Y) і відрізок прямої з координатами своїх кінців (x1; y1) і (х2; y2). Аналіз взаємного розміщення точки і відрізка полягає в отриманні відповіді на запитання: чи належить точка задано­му відрізку? Позитивну відповідь можна отримати лише за на­явності виконання таких двох умов:

1). Задана точка (X; Y) належить прямій, що проходить через точки      (x1; y1) і (х2; y2);

Рівняння прямої (x - x1) (y2 - y1) - (y - y1) (x2 - x1) = 0.

2). Координати точки (X; Y) належать діапазону, що визначається відповідними координатами кінців заданого відрізка.             

           

   

Тема “Точка і пряма. Рівняння прямої. Коло” 

Навчальна презентація до уроку. Завдання для практичного опрацювання теми

Обчислювальга геометрія Точка і пряма Коло

More presentations from Galina

 

Завдання 1. Пряма проходить через дві задані точки. Знайти кутовий коефіцієнт цієї прямої

private void button1_Click(object sender, EventArgs e)
        {
            double x1, y1, x2, y2, k;
            x1 = double.Parse(textBox1.Text);
            y1 = double.Parse(textBox2.Text);
            x2 = double.Parse(textBox3.Text);
            y2 = double.Parse(textBox4.Text);
            k = (y2 - y1) / (x2 - x1);
            textBox5.Text = k.ToString();
        }

Задача 2. Записати рівняння прямої у загальному вигляді, якщо задано точки, через які ця пряма проходить

            double x1, y1, x2, y2, a,b,c;
            x1 = double.Parse(textBox1.Text);
            y1 = double.Parse(textBox2.Text);
            x2 = double.Parse(textBox3.Text);
            y2 = double.Parse(textBox4.Text);
            a = y2 - y1;
            b = x1 - x2;
            c = y1 * x2 - x1 * y2;
            textBox5.Text = a.ToString();
            textBox6.Text = b.ToString();
            textBox7.Text = c.ToString();

Завдання 3. Дано три точки. Перевірити, чи належать ці точки одній прямій.

Для визначення чи розміщені три дані точки (x1; y1), (х2; y2) і (x3; y3) на одній прямій скористайтеся рівнянням прямої (x3-x1)(y2-y1)-(y3-y1)(x2-x1)=0

 

double x1, y1, x2, y2, x3,y3;
            x1 = double.Parse(textBox1.Text);
            y1 = double.Parse(textBox2.Text);
            x2 = double.Parse(textBox3.Text);
            y2 = double.Parse(textBox4.Text);
            x3 = double.Parse(textBox5.Text);
            y3 = double.Parse(textBox6.Text);
            if ((x3 - x1) * (y2 - y1) - (y3 - y1) * (x2 - x1) == 0) 
                label8.Text = "Так";
                else 
                label8.Text = "Ні";

Завдання 4. Дослідити положення даної прямої на координатній площині.

           double a, b, c; 
            a = double.Parse(textBox1.Text);
            b = double.Parse(textBox2.Text);
            c = double.Parse(textBox3.Text);
            if (c == 0) label6.Text = "Пряма проходить через початок координат";
            if (a != 0 && b == 0 && c != 0) label6.Text = "Пряма паралельнa осі OY";
            if (a != 0 && b == 0 && c == 0) label6.Text = "Пряма - вісь OY";
            if (a == 0 && b != 0 && c != 0) label6.Text = "Пряма паралельнa осі OXY";
            if (a == 0 && b != 0 && c == 0) label6.Text = "Пряма - вісь OX";

Завдання 5. Знайти тангенс кута між прямими (через кутові коефіцієнти).

           double k1, k2, tg;
            k1 = double.Parse(textBox1.Text);
            k2 = double.Parse(textBox2.Text);
            tg=(k2-k1)/(1-k1*k2);
            textBox3.Text = tg.ToString();

 

Самостійне виконання завдань

Опрацювати теоретичних матеріал навчальної презентації та скористатися необхідними співвідношеннями для розв'язання поставлених завдань.

Завдання 6. Знайти кут між прямими, що задані точками, через які прямі проходять.

Рекомендації:

Рівняння прямої, що проходить через 2 дані точки має кутовий коефіцієнт k = (y2 - y1) / (x2 - x1). Далі, див. попередню задачу

Завдання 7. Знайти координати точки, що ділить даний відрізок у заданому відношенні.

Завдання 8. Дослідити випадки взаємного розміщення двох даних прямих

Завдання 9. Знайти координати точки перетину даних прямих

Завдання 10. Перевірити, чи перпендикулярні дані прямі. Розглянути два випадки: через кутові коефіцієнти та через коефіцієнти загального рівняння прямої.

Творче завдання

Завдання 11. Сформулювати 3 різні задачі (за матеріалом 18 слайду навчальної презентації) та провести відповідні дослідження за їх умовами.