Нахождение точки на плоскости - C#
Формулировка задачи:
Добрый день, имею такую задачу :
Имею ряд вопросов, начнем по порядку : как проверить находится точка выше или ниже ?
как вообще эт реализовать ?)
Интерфейс и классы я написал, а все остальное чет не понятно , как сделать... можете помочь ?
Описать интерфейс IPolynomial, соответствующий многочленам. Он
должен содержать методы IsAbove и IsBelow, проверяющие, находится ли ука-
занная точка на плоскости строго выше или ниже графика многочлена соответ-
ственно.
Описать классы Linear (линейный) и Quadratic (квадратный), реализующие
этот интерфейс. Написать функцию IsBetween, принимающую два многочлена
и координаты точки и проверяющую, находится ли точка выше первого и ниже
второго многочлена.
Написать программу, использующую эту функцию.
Построить UML-диаграмму.
Листинг программы
- interface IPolynomial
- {
- void IsAbove();
- void IsBellow();
- }
- class Linear {
- void Isabove();
- void IsBellow();
- }
- class Quadratic
- {
- void Isabove();
- void IsBellow();
- }
с кодом может быть я справлюсь, можете чисто математически объяснить, как проверить находится ли точка (x,y) выше или ниже графика многочлена
Решение задачи: «Нахождение точки на плоскости»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- var linear = new Linear(); //y=x
- var quadratic = new Quadratic(1,0,-1); //y = x^2 - 1
- var p = new Point(10,11);
- Console.WriteLine(linear.IsAbove(p));
- p = new Point(3, 7);
- Console.WriteLine(quadratic.IsBelow(p));
- p = new Point(0, -0.5);
- Console.WriteLine(IsBetween(p,quadratic,linear));
- Console.ReadKey();
- }
- static bool IsBetween(Point _P, IPolynomial p1, IPolynomial p2)
- {
- return p1.IsAbove(_P) && p2.IsBelow(_P);
- }
- }
- interface IPolynomial
- {
- bool IsAbove(Point _p);
- bool IsBelow(Point _p);
- }
- class Linear : IPolynomial
- {
- double a,b;
- Func<double, double> Func(double _a, double _b)
- {
- return arg => _a * arg + _b;
- }
- public bool IsAbove(Point _p)
- {
- return _p.Y > Func(a, b)(_p.X);
- }
- public bool IsBelow(Point _p)
- {
- return _p.Y < Func(a, b)(_p.X);
- }
- //public double Y(double _x) { return Func(a, b)(_x); }
- public Linear() { a = 1; b = 0; }
- public Linear(double _a, double _b) { a = _a; b = _b; }
- }
- class Quadratic : IPolynomial
- {
- double a, b, c;
- Func<double, double> Func(double _a, double _b , double _c)
- {
- return arg => _a * arg * arg + _b * arg + _c;
- }
- public bool IsAbove(Point _p)
- {
- return _p.Y > Func(a, b, c)(_p.X);
- }
- public bool IsBelow(Point _p)
- {
- return _p.Y < Func(a, b, c)(_p.X);
- }
- //public double Y(double _x) { return Func(a, b, c)(_x); }
- public Quadratic() { a = 1; b = 0; c = 0; }
- public Quadratic(double _a, double _b, double _c) { a = _a; b = _b; c = _c; }
- }
- struct Point {
- public double X;
- public double Y;
- public Point(double _x, double _y) {
- X = _x;
- Y = _y;
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д