Форум программистов, компьютерный форум, киберфорум
Наши страницы
PascalABC.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Соколиный глаз
Alvin Seville
324 / 258 / 130
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
Завершенные тесты: 4
1

Почему вылетает с ошибкой NullReferenceException при закраске пикселя?

13.08.2017, 09:19. Просмотров 837. Ответов 3
Метки нет (Все метки)

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
uses crt,GraphABC;
 
type
  Point2D = class
    X, Y: real;
    
    constructor(px, py: real);
    begin
      X := px;Y := py;
    end;
  end;
 
function Interpolation(a, b: real; p: byte): real;
var
  d: real;
begin
  d := abs(a - b) * (p / 100); // p лежит от 0 до 100 
  if a > b then Interpolation := a - d else Interpolation := a + d; 
end;
 
function Interpolation(A, B: Point2D; p: byte):= new Point2D(Interpolation(A.X, B.X, p), Interpolation(A.Y, B.Y, p));
 
function GetPoint(a: List<Point2D>; p: byte): Point2D;
var
  b: List<Point2D>;
begin
  if a.Count = 2 then Result := Interpolation(a[0], a[1], p)
  else
  begin
    b := new List<Point2D>();
    for var i := 0 to a.Count - 2 do
      b.Add(Interpolation(a[i], a[i + 1], p));
      
    GetPoint(b, p);
  end;
end;
 
var
  P: List<Point2D>;
 
begin
  P := new List<Point2D>;
  P.Add(new Point2D(100, 200));
  P.Add(new Point2D(100, 100));
  P.Add(new Point2D(200, 100));
  P.Add(new Point2D(200, 200));
  
  for var i := 0 to 99 do
  begin
    var K := GetPoint(P, i);
    PutPixel(Round(K.X), Round(K.Y), clBlack);
  end;
end.
Почему вылетает с ошибкой NullReferenceException при закраске пикселя?
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2017, 09:19
Ответы с готовыми решениями:

Почему вылетает с ошибкой NullReferenceException?
Код модуля: unit GraphOptimized; uses GraphABC; const Radius = 5; type ///Location...

Почему вылетает System.NullReferenceException?
Привет народ ) есть класс using MaxAll.Facebooks; using MaxAll.View; using System.Threading;...

Почему вылетает с ошибкой, а не создает два
Почему вылетает с ошибкой? На VBA модуль переписывал с Pascal-евского оригинального варианта...

Программа вылетает с ошибкой EXC_? (11). Почему?
Комрады, надеюсь на вашу помощь. Решил тряхнуть стариной (лет 13 назад в вузе изучал делфи) и...

При работе программы вылетает исключение NullReferenceException
Добрый вечер, при работе программы выливает исключение на строчки вот само исключение //Copy...

3
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
28903 / 19065 / 7493
Регистрация: 22.10.2011
Сообщений: 33,234
Записей в блоге: 6
13.08.2017, 12:45 2
Лучший ответ Сообщение было отмечено Volobuev Ilya как решение

Решение

А что возвращает GetPoint? Где присвоение результату?
0
Соколиный глаз
Alvin Seville
324 / 258 / 130
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
Завершенные тесты: 4
13.08.2017, 12:54  [ТС] 3
Ну:
Pascal
1
if a.Count = 2 then Result := Interpolation(a[0], a[1], p)
Разве нельзя сделать так, чтобы он возвращал точку лишь тогда когда в массиве 2 элемента?
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
28903 / 19065 / 7493
Регистрация: 22.10.2011
Сообщений: 33,234
Записей в блоге: 6
13.08.2017, 14:48 4
Нет, нельзя. Результат должен возвращаться, по какой бы ветке не пошло выполнение. Что получается, когда результат не возвращается ты уже видел.
0
13.08.2017, 14:48
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2017, 14:48

При установки XP вылетает синий экран с ошибкой!
Начел ставить XP и вдруг вылетела ошибка! мне когда его принесли говорят что тоже была какая-то...

Visual Studio 2010 вылетает с ошибкой при использовании MPI
При запуске программы вылетает ошибка &quot;Прекращена работа MS Visual Studio 2010&quot; Сигнатура...

При установке windows 7 вылетает синий экран с ошибкой BAD_SYSTEM_CONFIG_INFO
При установке windows 7 вылетает синий экран с ошибкой BAD_SYSTEM_CONFIG_INFO help


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.