Уроки, алгоритмы, программы, примеры

Вход на сайт

Материалы по разделам

Построения
на плоскости (2D)
Графика
в пространстве (3D)
Вычислительная
геометрия
Физическое
моделирование
Фрактальная
графика

Новые комментарии

Сейчас проверила нашла причину не запускания // Создание контекста воспроизведения OpenGL и привязка его к панели на форме OpenGLControl1:=TOpenGLControl.Create(Self); with OpenGLControl1 do begin Name:='OpenGLControl1'; //вот тут...
Ну..кажется что то пошло не так http://pp.usera...
Комментарии на английском переведите на русский. Дополните код комментариями, чтоб было понятно как работает алгоритм
Пример, к которому вы оставили комментарий строит именно то самое изображение на языке с#, которое вам необходимо. Отличается только цветовая палитра.

Счетчики и рейтинг

Рейтинг@Mail.ru
BBUS. Для юрлиц заказ автомобиля с водителем на выгодных условиях.
Среда программирования: 
Lazarus 1.0.6 win64
Статья по теме: 

Имеются две прямые,заданные уравнениями с угловым коэффициентом, где
m - угловой коэффициент первой прямой, p - угловой коэффициент второй;
k - показатель ординаты точки пересечения прямой с осью ординат первой прямой,
q - показатель ординаты точки пересечения прямой с осью ординат второй.
Программа определяет параллельность прямых, угол между прямыми и в случае непараллельности точку их пересечения.

Код программы: 

unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  StdCtrls;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    PaintBox1: TPaintBox;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.Button1Click(Sender: TObject);
var
  tanalfa:real;
  m,k,p,q:real;
  y00,y01,y10,y11,xp,yp:real;
begin
m  := strtofloat(edit1.Text);
k  := strtofloat(edit2.Text);
p  := strtofloat(edit3.Text);
q  := strtofloat(edit4.Text);
 
tanalfa:=(m-p)/(1+m*p);
if(tanalfa<0) then tanalfa:=-1*tanalfa;
y00 := -100*m+k;
y01 :=  100*m+k;
y10 := -100*p+q;
y11 :=  100*p+q;
 
form1.PaintBox1.canvas.Pen.Color:=clgreen;
form1.PaintBox1.canvas.Line(-100,round(y00),100,round(y01));
form1.PaintBox1.canvas.Pen.Color:=clred;
form1.PaintBox1.canvas.Line(-100,round(y10),100,round(y11));
label5.Caption:='Угол между прямыми(рад): '+ floattostr(arctan(tanalfa));
 
if(m=p)then
label6.Caption:='Прямые параллельны'
  else
    begin
      xp:=(q-k)/(m-p);
      yp:=m*xp+k;
      label6.Caption:= 'Прямые не являютcя параллельными. Точка пересечения прямых:(' 
      + floattostr(xp) + ';' + floattostr(yp) + ')';
    end;
end;
 
 
end.

Прикрепленный файлРазмер
Исходные коды и запускаемый файл763.86 кб