Javafx: como adicionar sombras

Video: Como aplicar las sombras de maquillaje y dividir el párpado por nombre

Você pode perceber que a sombra neste retângulo JavaFX mostrado aqui não parece muito realista. Isso porque ele é diretamente atrás do retângulo, como se a fonte de luz fazendo com que a sombra estava morto à frente. Normalmente, esperamos sombras para ser em um pequeno ângulo do objeto projetando a sombra, na maioria das vezes abaixo do objeto e deslocado para um dos lados.

Felizmente, o DropShadow classe tem várias propriedades que permitem controlar o tamanho e posicionamento da sombra. Esses métodos são listados nesta tabela, que lista os detalhes não só da DropShadow classe mas também da sua classe irmã, Sombra interior. o Sombra interior classe cria uma sombra dentro de uma forma, em vez de fora da forma. Por enquanto, o foco em DropShadow.

As Classes Dropshadow e InnerShadow
ConstrutorExplicação
DropShadow ()Cria um novo DropShadow efetuar com
configurações padrão.
Sombra interior()Cria um novo Sombra interior efetuar com
configurações padrão.
Métodos comunsExplicação
vazio setColor (valor Cor)Define a cor usada para a sombra. O padrão é PRETO.
setWidth void (valor duplo)Define a largura da sombra. O padrão é 21.
vazio setHeight (valor duplo)Define a altura da sombra. O padrão é 21.
vazio setOffsetX (valor duplo)O deslocamento horizontal para a sombra. O padrão é 0.
setOffsetY void (valor duplo)O deslocamento vertical para a sombra. O padrão é 0.
vazio setRadius (valor duplo)O raio da sombra&rsquo-s efeito de desfocagem. O padrão é
10.
dropshadow SóExplicação
vazio setSpread (valor duplo)A proporção (0,0-1,0) da sombra que deve ser um
cor sólida em vez de turva. O padrão é 0.
InnerShadow únicaExplicação
vazio setChoke (valor duplo)A proporção (0,0-1,0) da sombra que deve ser um
cor sólida em vez de turva. O padrão é 0.

Os métodos da DropShadow classe permitem especificar a geometria exata da sombra que você deseja aplicar. o setWidth e setHeight métodos permitem especificar o tamanho da sombra, eo setOffsetX e setOffsetY métodos permitem que você altere a localização do parente sombra ao centro da forma. Normalmente, você vai adicionar um X positivo e compensar-y para que a sombra aparece abaixo e à direita da forma, como esta:

DropShadow shadow1 = new DropShadow () - shadow1.setOffsetX (10) -shadow1.setOffsetY (10) -

Neste exemplo, a sombra é colocada 10 pixels para a direita e 10 pixels abaixo da forma.

o setRadius método permite que você especifique o tamanho do efeito de borrão aplicada para as bordas da sombra. Quanto maior este número, o fuzzier a sombra aparecerá. Você também pode controlar a espalhar, o que indica que parte do borrão da sombra deve ser de cor sólida antes do efeito borrão nos chutes.

Esta figura mostra um aplicativo JavaFX que demonstra nove variações da sombra básica.

Para criar esses retângulos sombreados, um método utilitário chamado createShadowedBox foi criado. Aqui está o código para este método:



Rectângulo createShadowedBox (tamanho duplo, duplo ShadowWidth, duplo shadowHeight, duplo offsetX, duplo offsetY, raio duplo) {rectângulo R = novo rectângulo (tamanho, tamanho) -r.setFill (Color.LIGHTGRAY) -r.setStroke (Color.BLACK) -r.setStrokeWidth (2) -DropShadow e = novo DropShadow () - e.setWidth (ShadowWidth) -e.setHeight (shadowHeight) -e.setOffsetX (offsetX) -e.setOffsetY (offsetY) -e.setRadius (raio) -r.setEffect (e) -Retornar r-}

Como você pode ver, este método aceita seis parâmetros: o tamanho do retângulo para criar (o retângulo é realmente um quadrado, de modo que o tamanho é usado tanto para a largura ea altura), a largura ea altura da sombra, o x - e y deslocamentos para a sombra, e raio de borrão da sombra.

O método começa com a criação de um retângulo. Em seguida, cria-se uma gota de sombra, aplica-se a largura, altura, distância x, y-offset, e o raio, e, em seguida, aplica-se o efeito do rectângulo, e retorna o rectângulo.

Para criar os retângulos reais sombreados, o createShadowBox método foi chamado nove vezes, usando diferentes valores de parâmetro:

Rectângulo R1 = createShadowedBox (100, 10, 10, 5, 5, 10) -Rectangle r2 = createShadowedBox (100, 20, 20, 10, 10, 10) -Rectangle R3 = createShadowedBox (100, 30, 30, 15, 15 , 10) -Rectangle r4 = createShadowedBox (100, 20, 20, 0, 0, 10) -Rectangle R5 = createShadowedBox (100, 20, 20, 0, 10, 10) -Rectangle R6 = createShadowedBox (100, 20, 20 , 10, 0, 10) -Rectangle r7 = createShadowedBox (100, 20, 20, 10, 10, 0) -Rectangle R8 = createShadowedBox (100, 20, 20, 10, 10, 20) -Rectangle R9 = createShadowedBox (100 , 20, 20, 10, 10, 50) -

Para o primeiro conjunto de três, o tamanho e deslocamento da sombra foi variado, em cada uma, utilizando os mesmos valores para a largura, a altura e para a distância x e o desvio-y. Assim, a primeira linha de retângulos na figura mostram vários estágios da sombra abaixo e à direita dos retângulos.

Video: Como colocar sombra no Minecraft [TUTORIAL]

Para o próximo conjunto de três, a distância x ou y-offset foi definido como zero para demonstrar variações do offset. E para o conjunto final de três, o raio foi variado. Observe que quando o raio é definido como 0, as bordas da sombra são nítidas. Com valores de raio maior, a sombra fica mais embaçada.

Esta figura mostra como interior sombras trabalhar. Para esta figura, apenas uma linha de código foi alterado no createShadowBox Método: Em vez de criar um DropShadow, a Sombra interior foi criado:

InnerShadow e = new InnerShadow () -

Como você pode ver, o Sombra interior classe coloca a sombra no interior do retângulo, em vez de no lado de fora.


Publicações relacionadas