Matrix的前乘和后乘不太明白?
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Documentação
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- android, java
- Domínio
- computer-graphics, mobile
Direção de pesquisa
Comece pelos dois snippets e pelas chamadas de Android Matrix mostradas: postRotate, postTranslate, preTranslate e PathMeasure.getMatrix. Compare a ordem das transformações e explique por que as duas abordagens usam direções de multiplicação diferentes. Considera-se concluído quando houver uma explicação clara fundamentada nos exemplos exibidos; nenhuma arquivo ou teste é identificado na issue.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
measure.getPosTan(measure.getLength() * currentValue, pos, tan); // 获取当前位置的坐标以及趋势
mMatrix.reset(); // 重置Matrix
float degrees = (float) (Math.atan2(tan[1], tan[0]) * 180.0 / Math.PI); // 计算图片旋转角度
mMatrix.postRotate(degrees, mBitmap.getWidth() / 2, mBitmap.getHeight() / 2); // 旋转图片
mMatrix.postTranslate(pos[0] - mBitmap.getWidth() / 2, pos[1] - mBitmap.getHeight() / 2); // 将图片绘制中心调整到与当前点重合
这是第一种方案,
// 获取当前位置的坐标以及趋势的矩阵
measure.getMatrix(measure.getLength() * currentValue, mMatrix, PathMeasure.TANGENT_MATRIX_FLAG | PathMeasure.POSITION_MATRIX_FLAG);
mMatrix.preTranslate(-mBitmap.getWidth() / 2, -mBitmap.getHeight() / 2); // <-- 将图片绘制中心调整到与当前点重合(注意:此处是前乘pre)
这是第二种方案,为什么第一种是用的后乘,第二种用的是前乘,具体看了那个matrix的原理还是不太明白?可以具体讲讲吗?
- Linguagem predominante
- Java
- Estrelas
- 9.3k
- Forks
- 2.1k
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de GcsSloop/AndroidNote
-
安卓自定义View进阶-Canvas之绘制图形 部分有误 Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 42/100
GcsSloop/AndroidNote#116 ·
-
安卓 Aberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 10/100
GcsSloop/AndroidNote#115 ·
-
章节缺失:安卓自定义View进阶 Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
GcsSloop/AndroidNote#114 ·
-
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 55/100
GcsSloop/AndroidNote#111 · 2 reações ·
-
博客有几篇打不开了 Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 35/100
GcsSloop/AndroidNote#110 ·
Todas as issues de GcsSloop/AndroidNote
Issues semelhantes
-
awaiting triage bug Causes friction Hop Gui P1 P2 Transforms
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
apache/flink-agents#1152 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
jenkinsci/blueocean-plugin#5417 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
objectionary/eo-graphs#75 ·