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

Вход на сайт

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

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

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

Рекурсия присутствует?
И где эти прикрепленные файлы?
Я код на C++ набрал сам. Строил кривую Безье, но "прилипал" к нулю. То есть я задаю точки далеко от нуля, а он строил из нуля, а потом только обходил предложенные точки. Потом я нашёл Ваш сайт и эту статью. Оказалось, что я забыл возвести t в...
просто я не так понял, здесь мы вращаем точки куба что вращает сам куб. Мне нужно вращать просто 3д объект , данный способ не подходит
Задавайте объект в мировых координатах. Вращайте его относительно мировой системы координат. А при отрисовке преобразуйте в экранные координаты. Посмотрите пример преобразования в экранные координаты.

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

Рейтинг@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 кб