1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/HarmonyOS-tpc-BezierMaker

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 5.2 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 20:17 ffc589b

BezierMaker

Через алгоритм де Кастельжо реализуется рисование кривых Безье и вычисление их касательных, что позволяет создавать анимацию формирования кривых от 1-го до 7-го порядка.

Алгоритм де Кастельжо позволяет вычислить точку на кривой Безье, а затем нарисовать саму кривую.

Подробнее о принципе работы кривых Безье.

Для более глубокого понимания алгоритма де Кастельжо можно обратиться к статье «Алгоритм де Кастельжо — поиск точки на кривой Безье».

Возможности:

  • добавление и удаление контрольных точек;
  • поддержка кривых Безье от 1-го до 7-го порядка (ограничена размером экрана, теоретически возможна поддержка N-го порядка);
  • свободное перемещение контрольных точек;
  • отображение процесса формирования кривой Безье с помощью касательной;
  • циклическое отображение анимации формирования кривой Безье;
  • настройка скорости отображения кривой Безье;
  • показ координат контрольных точек;
  • установка порядка кривой Безье.

Скриншоты:


Как импортировать в проект:

Способ 1: Создать har-пакет через library и добавить его в папку libs. В файле gradle entry добавить следующий код:

implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])

Способ 2:

allprojects{
    repositories{
        mavenCentral()
    }
}
implementation 'io.openharmony.tpc.thirdlib:BezierMaker:1.0.5'

Демо:

Java:
 public class MainAbility extends Ability {

        BezierView mBezierView;

        @Override
         protected void onStart(Intent intent) {
           super.onStart(intent);
           setUIContent(ResourceTable.Layout_ability_main);
           
           mBezierView = (BezierView) findComponentById(ResourceTable.Id_bezier);
        }

        public void start(Component component) {
            mBezierView.start();
        }

        public void stop(Component component) {
            mBezierView.stop();
        }

        public void add(Component component) {
            mBezierView.addPoint();
        }

        public void del(Component component) {
            mBezierView.delPoint();
        }

    }
method 方法 description 描述
void start() 开始贝塞尔曲线(required)
void stop() 停止贝��ессиль кривая(optional)
boolean addPoint() увеличение контрольной точки(optional)
boolean delPoint() удаление контрольной точки(optional)
int getOrder() получение порядка кривой Безье(optional)
void setRate(int rate) установка скорости перемещения(optional)
void setTangent(boolean tangent) настройка отображения касательной(optional)
void setLoop(boolean loop) настройка цикла(optional)
void setOrder(int order) установка порядка кривой Безье(optional)

Лицензия: Copyright (C) 2016 venshine.cn@gmail.com

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/HarmonyOS-tpc-BezierMaker.git
git@api.gitlife.ru:oschina-mirror/HarmonyOS-tpc-BezierMaker.git
oschina-mirror
HarmonyOS-tpc-BezierMaker
HarmonyOS-tpc-BezierMaker
master