Перейти к содержанию
Fire Monkey от А до Я
  • 0

DrawLine. Следы старого изображения. Android.


Саша

Вопрос

Здравствуйте!

Вот фрагмент программы.

var aBitmap: TBitmap;

type
  TArrow = record
   x, y: integer;
  end;
var arrow: array [1..3] of TArrow;

........

........

........

procedure TForm1.Button4Click(Sender: TObject);

begin

   aBitmap := TBitmap.Create;
   aBitmap.SetSize(trunc(Image1.Width), trunc(Image1.Height));
   aBitmap.Canvas.BeginScene;

// Задаю цвет
  aBitmap.Canvas.Stroke.Color := TAlphaColorRec.Forestgreen;

// Рисую зеленую стрелку
  aBitmap.Canvas.DrawLine(PointF(X0, Y0), PointF(arrow[1].x, arrow[1].y), 1);
  aBitmap.Canvas.DrawLine(PointF(arrow[1].x, arrow[1].y),
    PointF(arrow[2].x, arrow[2].y), 1);
  aBitmap.Canvas.DrawLine(PointF(arrow[1].x, arrow[1].y),
    PointF(arrow[3].x, arrow[3].y), 1);

  aBitmap.Canvas.EndScene;
  Image1.Bitmap.Assign(aBitmap);
  aBitmap.Free;
end;
 

При первом нажатии кнопки полуаю ожидаемый результат.

Затем мне надо перерисовать эту стрелку в другом направлении.

Для этого пересчитываю x, y в arrow, нажимаю кнопку, вижу ужас.

Ноая стрелка нарисовалась правильно, но остались следы от старой стрелки в виде разбросанных пикселей от старой срелки.

Помогите, пожалуста, решить проблему. Спасибо!

 

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

по умолчанию нарисован прозрачный фон 

поэтому копирование на другой битмап вполне может добавить только непрозрачные области, остальное оставить как было

начните рисование с 

https://docwiki.embarcadero.com/Libraries/Sydney/en/FMX.Graphics.TCanvas.Clear

Ссылка на комментарий
  • 0
4 часа назад, krapotkin сказал:

Спасибо! Проблема решена!

После       aBitmap := TBitmap.Create;

добавил   Image1.Bitmap.Clear(TAlphaColors.White);

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...