Crie um programa(código) na linguagem scilab para resolver a questão a seguir: Escreva uma funçāo que receba como parâmetros as coordenadas
e y de três pontos (
e
) e retorne duas informaçōes. A primeira deve ser um valor böoleano dizendo se é possível formar um retângulo conforme a figura abaixo, ou seja, verdadeiro se o ponto P1 estiver no canto inferior esquerdo e o ponto P2 deve estar no canto superior direito e falso no caso contrário. Caso seja possível formar o retângulo, o segundo valor de retorno deve ser um booleano informando se o terceiro ponto, P3, está interno (verdadeiro) ou externo (falso) ao retângulo. Caso não seja possível formar o retângulo, o segundo booleano deve retornar falso.
Passo 1
Beleza, vamos lá! Você tem um exercício que envolve programação na linguagem Scilab e geometria. O objetivo é criar uma função que recebe as coordenadas de três pontos no plano e determina duas coisas:
- Se é possível formar um retângulo com o primeiro ponto no canto inferior esquerdo e o segundo ponto no canto superior direito.
- Se o terceiro ponto está dentro desse retângulo, caso ele possa ser formado.
Para resolver isso, vamos precisar entender coordenadas no plano cartesiano, condições para formar um retângulo alinhado com os eixos e como verificar se um ponto está dentro de um retângulo.
Passo 2
Primeiro, vamos entender as coordenadas dos pontos. Cada ponto é definido por dois valores: x (horizontal) e y (vertical). No plano cartesiano, o ponto P1(x₁, y₁) está no canto inferior esquerdo e o ponto P2(x₂, y₂) no canto superior direito do retângulo que queremos formar.
Para formar um retângulo alinhado com os eixos, precisamos que:
- x₂ > x₁ (o segundo ponto está à direita do primeiro)
- y₂ > y₁ (o segundo ponto está acima do primeiro)
Se essas condições não forem atendidas, não conseguimos formar o retângulo conforme solicitado, e a função deve retornar falso para a primeira informação.
Passo 3
Agora, supondo que as condições acima sejam verdadeiras e conseguimos formar o retângulo, precisamos verificar se o terceiro ponto P3(x₃, y₃) está dentro desse retângulo.
Um ponto está dentro de um retângulo se:
- Sua coordenada x está entre x₁ e x₂
- Sua coordenada y está entre y₁ e y₂
Caso ambas as condições sejam atendidas, o ponto está interno; caso contrário, está externo.
Passo 4
Vamos traduzir isso para uma função em Scilab. A função vai receber seis parâmetros: x₁, y₁, x₂, y₂, x₃, y₃. Ela vai retornar dois valores booleanos:
isRectangle
: verdadeiro se as condições para formar o retângulo forem atendidas, falso caso contrário.isInternal
: verdadeiro se o terceiro ponto estiver dentro do retângulo, falso caso contrário. Se não for possível formar o retângulo, este valor também será falso.
Passo 5
Vamos implementar isso passo a passo no Scilab:
- Verificar se x₂ > x₁ e y₂ > y₁ para determinar se podemos formar o retângulo.
- Se for possível, verificar se x₁ ≤ x₃ ≤ x₂ e y₁ ≤ y₃ ≤ y₂ para determinar se o ponto P3 está interno.
- Retornar os dois valores booleanos conforme os resultados dessas verificações.
Resposta
Aqui está o código em Scilab que realiza o que foi descrito:
function [isRectangle, isInternal] = verificarRetangulo(x1, y1, x2, y2, x3, y3)
// Inicializa os valores de retorno
isRectangle = %f;
isInternal = %f;
// Verifica se é possível formar o retângulo
if (x2 > x1) & (y2 > y1) then
isRectangle = %t;
// Verifica se o ponto P3 está dentro do retângulo
if (x3 >= x1) & (x3 <= x2) & (y3 >= y1) & (y3 <= y2) then
isInternal = %t;
else
isInternal = %f;
end
else
// Se não for possível formar o retângulo, isInternal é falso
isInternal = %f;
end
endfunction
Explicação do Código:
- A função
verificarRetangulo
recebe seis parâmetros correspondentes às coordenadas dos três pontos. - Inicialmente,
isRectangle
eisInternal
são definidos como falso (%f
). - A primeira condição
if (x2 > x1) & (y2 > y1)
verifica se o retângulo pode ser formado com P1 no canto inferior esquerdo e P2 no canto superior direito. - Se for possível,
isRectangle
é definido como verdadeiro (%t
), e uma segunda verificação é feita para determinar se P3 está dentro do retângulo. - A segunda condição
if (x3 >= x1) & (x3 <= x2) & (y3 >= y1) & (y3 <= y2)
verifica se o ponto P3 está dentro dos limites do retângulo. - Dependendo do resultado,
isInternal
é definido como verdadeiro ou falso. - Se o retângulo não puder ser formado,
isInternal
permanece falso.
Como Usar a Função:
Para usar essa função, você pode chamar da seguinte forma no Scilab:
Para usar essa função, você pode chamar da seguinte forma no Scilab:
[xRet, xInt] = verificarRetangulo(1, 1, 5, 5, 3, 3);
disp(xRet); // Deve mostrar %T
disp(xInt); // Deve mostrar %T
Isso verificará se é possível formar um retângulo com P1(1,1) e P2(5,5) e se P3(3,3) está dentro desse retângulo.