javafx 이미지 3D 반전 효과 구현 방법 인 스 턴 스
//
public Node frontNode;
//
public Node backNode;
//
boolean flipped = false;
//
DoubleProperty time = new SimpleDoubleProperty(Math.PI / 2);
//
PerspectiveTransform frontEffect = new PerspectiveTransform();
//
PerspectiveTransform backEffect = new PerspectiveTransform();
create 방법 은 표시 할 내용 을 되 돌려 줍 니 다:4.567913 이상 코드 는 time 값 의 변화 에 따라 frontEffect 와 backEffect 의 값 도 변 경 됩 니 다.2.PerspectiveTransform 특수효과 의 실현 은 Math.sin()과 Math.cos()방법 으로 3D 각도 변환 을 모 의 했다.구체 적 인 실현 은 다음 과 같다
private void create() {
time.addListener(new ChangeListener() {
@Override
public void changed(ObservableValue<? extends Number> arg0,
Number arg1, Number arg2) {
setPT(frontEffect, time.get());
setPT(backEffect, time.get());
}
});
anim.getKeyFrames().addAll(frame1, frame2);
backNode.visibleProperty().bind(
Bindings.when(time.lessThan(0)).then(true).otherwise(false));
frontNode.visibleProperty().bind(
Bindings.when(time.lessThan(0)).then(false).otherwise(true));
setPT(frontEffect, time.get());
setPT(backEffect, time.get());
frontNode.setEffect(frontEffect);
backNode.setEffect(backEffect);
getChildren().addAll(backNode, frontNode);
}
3.각도 변환 은 1 초 동안 3.14/2 에서-3.14/2 로 바 뀌 었 다
private void setPT(PerspectiveTransform pt, double t) {
double width = 200;
double height = 200;
double radius = width / 2;
double back = height / 10;
pt.setUlx(radius - Math.sin(t) * radius);
pt.setUly(0 - Math.cos(t) * back);
pt.setUrx(radius + Math.sin(t) * radius);
pt.setUry(0 + Math.cos(t) * back);
pt.setLrx(radius + Math.sin(t) * radius);
pt.setLry(height - Math.cos(t) * back);
pt.setLlx(radius - Math.sin(t) * radius);
pt.setLly(height + Math.cos(t) * back);
}
4.FlipView 대상 의 생 성:구조 함 수 를 통 해 FlipView 대상 을 편리 하 게 만 들 수 있 습 니 다.
KeyFrame frame1 = new KeyFrame(Duration.ZERO, new KeyValue(time,
Math.PI / 2, Interpolator.LINEAR));
KeyFrame frame2 = new KeyFrame(Duration.seconds(1),
new EventHandler() {
@Override
public void handle(ActionEvent event) {
flipped = !flipped;
}
}, new KeyValue(time, -Math.PI / 2, Interpolator.LINEAR));
5.효과 도:이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
데이터 구조 - 그림 - C 언어 - 인접 행렬데이터 구조 - 그림 - C 언어 - 인접 행렬 공식 표기 법 응시 표기 법...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.