Скачать 270.53 Kb.
|
Построение графиков функцийДо сих пор при создании рисунков использовали только первый квадрант системы координат. Для построения большинства функций в требуемом интервале изменения необходимо работать хотя бы в двух квадрантах. В общем случае полезно изображать систему координат в любой части плоскости, но наиболее наглядно располагать ее в центре экрана. В таких случаях, установив начало координат в точке (x0, y0) на экране, можно координаты (x, y) произвольной точки кривой определять разностью (x-x0, y-y0). После этого в программе можно употреблять не только положительные, но и отрицательные значения. Рисунок получается маленьким, поэтому требуется увеличить масштаб изображения. Если для функции будет использован весь экран, надо увеличить рисунок по x и по y в зависимости от выбранного экрана. Выбрать масштаб увеличения можно следующим образом: -определить горизонтальный и вертикальный размеры графика (для этого вводятся границы области значений и определяются максимальное и минимальное значение функции на заданной области определения, затем вычисляются разности максимального и минимального значений аргументов и функции, которые и являются горизонтальным и вертикальным размерами графика соответственно); -определить масштаб (сначала определяются масштабы изображения по горизонтали и вертикали с учетом размеров выбранного экрана по формуле: масштаб(г/в) = размер экрана (по г/в) / размер графика (по г/в), затем из них выбирается меньший, который и принимается за необходимый масштаб. В нашем случае графический экран имеет размеры 640 на 480. В любом случае, чтобы высветить на экране точку, надо взять x, вычислить по данной абсциссе y и выполнить рисование точки. Так как на экране можно получить лишь ограниченное количество значений х, то их перебираем с помощью цикла. Пример. Построить график функции y=x2 Вариант 1program f; uses graph; var gd, gm: integer; x, y: real; begin gd:= detect; initgraph( gd, gm, ‘c:\ bp’); SetColor(5); Line(0, 240, 640, 240); Line(320, 0, 320, 480); x:= -20; While x<=20 do begin y:= -Sqr(x); PutPixel(round( x *5) + 320, round(y*5) +240, 15); x:=x + 0.01; end; end. Вариант 2program f; uses graph, crt; var gd, gm: integer; x, y, mx, my, m,x1, x2, y1, y2,h: real; function f(x:real): real; begin f:= Sqr(x); end; clrscr; Write(‘Введите границы отрезка’); Read(x1, x2); y1:=f(x1); mx:=640 /(x2 –x1); my:=480 / (y1 – 0); If mx< my Then m:=mx else m:= my; h:= 1/m; x:=x1; gd:= detect; initgraph(gd, gm, ‘c:\ bp’); SetColor (5); Line(0, 240, 640, 240); Line(320, 0, 320, 480); While x<= x2 do begin y:= -f(x); PutPixel(round(x *m) +320, round(y*m) +240, 15); x:= x+ h; end; end. Для перевода текущих координат точки из декартовой системы координат в систему устройства можно воспользоваться формулами: nx:=round((x-xmin)/(xmax-xmin)*nx_max); ny:=round((y-ymax)/(ymax-ymin)*ny_max); где: x,y – координаты текущей точки; xmax, xmin – диапазон изменения x в декартовой системе координат; ymax, ymin - диапазон изменения y в декартовой системе координат; nx_max – количество пиксел по ширине экрана, можно получить при помощи функции Getmaxx; ny_max - количество пиксел по высоте экрана, можно получить при помощи функции Getmaxy; Их удобно оформить в виде функций. Заданную формулу для графика тоже лучше оформить в виде функции, тогда получится универсальная программа. Вариант 3program grafik; uses graph,crt; var xmin,xmax,ymin,ymax:real; x,dx:real; grDriver: Integer; grMode: Integer; ErrCode: Integer; function nx(x:real):integer; begin nx:=round((x-xmin)/(xmax-xmin)*getmaxx) end; function ny(y:real):integer; begin ny:=round((y-ymax)/(ymax-ymin)*getmaxy) end; function y(x:real):real; begin y:=sqr(x) end; begin grDriver := Detect; InitGraph(grDriver, grMode,'u:\win95\bp7\bgi'); ErrCode := GraphResult; if ErrCode = grOk then begin xmax:=5;xmin:=-5; ymax:=5;ymin:=-5; dx:=0.1; setcolor(14); Line(GetMaxX div 2,0, GetMaxX div 2, GetMaxY); Line(0,GetMaxY div 2, GetMaxX, GetMaxY div 2); setcolor(13); x:=-4; while x<=4 do begin line(nx(x),-ny(y(x)),nx(x+dx),-ny(y(x+dx))); x:=x+dx end; Readln; CloseGraph; end else Writeln('Graphics error:', GraphErrorMsg(ErrCode)); end. Замечание: Лучше для рисования графика использовать процедуру line, а не putpixel, т.к. график получится без разрывов. Рассмотрим построение графика функции, заданной параметрически. В отличие от функции, заданной в явном виде y=f(x), параметр х в этом случае также является функцией, зависящей от некоторого значения. Пример. Построить график функции (кардиоида) x = a cos t ( 1+ cost), y = a sin t( 1+cost), a > 0, t [0, 2 ) Приведем фрагмент программы: SetColor (5); Line(0, 240, 640, 240); Line(320, 0, 320, 480); t:=0; a:=3; While t<= 3.1415 do begin x:=a*cos(t)*(1+cos(t)); y:= - a sin(t)*(1+cos(t)); PutPixel(x*5 +320, y*5 +240, 15); x:= x+ 0.01; end; |
Конспект по теме: «Записи в Паскале» Цель урока: сформировать представление у учащихся о способе обозначения геометрических фигур буквами латинского алфавита | Конспект по теме: ‘Строковый тип данных в паскале’ Планирование составлено на основе : «Программы воспитания и обучения в детском саду» под редакцией М. А. Васильевой, В. В гербовой,... | ||
Конспект урока по теме Компьютерная графика Задачи: формирование знаний учащихся о развитии животных, учить рассуждать, делать выводы, умение работать с текстом | Конспект урока компьютерная графика. Растровая и векторная графика.... Семакин И. Г. Информатика и икт. Базовый курс: Учебник для 8 класса. М.: Бином. Лаборатория знаний,2007 | ||
Конспект интегрированного урока по информатике и математике по теме:... Методы: объяснительно–иллюстративный, использование пк для выполнения самостоятельной работы | Конспект урока тема: построение графиков функций в паскале авс. Цель... Воспитательная: воспитание информационной культуры учащихся, внимательности, аккуратности, дисциплинированности, усидчивости | ||
Конспект урока информатики в 7 классе по теме «Растровая и векторная графика» Продолжить знакомство с Красной книгой, расширить и углубить знания детей о животных и растениях, встречающихся в нашей местности,продолжить... | Конспект по теме «Ландшафтные исследования за рубежом» Составить конспект по теме «Влияние геологического и тектонического строения земной коры на ландшафт» | ||
Конспект занятия по теме «Прошивание угла» Конспект занятия по теме... Методические разработки к программе дополнительного образования «Играем в экологию» | Конспект по теме «Россия в начале 20 века» Конспект по теме «Русско-японская война» Царствование последнего российского императора Николая II. Кризис власти. Россия в годы трех российских революций | ||
Исследование функций с помощью графика производной Графики производной... Систематизировать знания обучающихся по теме: «Производная функции», формирование у обучающихся базовой математической подготовки... | Программа по русскому языку Фонетика. Графика Звуки и буквы, их соотношение. Графика. Алфавит. Звуковое значение букв е, ё, ю, я. Употребление букв ь и ъ, их функции | ||
Программа по формированию навыков безопасного поведения на дорогах... Урок Технологии построения анимационных изображений, трехмерная графика. Растровая и векторная графика. Модели цветообразования | Конспект урока Тема: Растровая и векторная графика Самостоятельная работа студентов в рамках учебного курса «Культурология» включает в себя | ||
План-конспект урока по теме «Choosing a profession» План конспект урока №4 по теме №6 Shopping for everything с проектной деятельностью в 4-а классе, аттестующегося учителя Шмарцевой... | Конспект урока по окружающему миру в 3 классе по теме План конспект урока биологии в 7 классе по теме «Сфагновый мох. Образование торфа» |