USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  circunferência
2bad
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 12/01/2006 15:47 hs         
olá, como desenhar uma circunferência com divisões de 5 em 5 graus no vb?
como fazer um ponteiro que possa ser movido ao redor da circunferência e que mostre o ângulo escolhido?
   
Geronimo
Pontos: 2843
JOINVILLE
SC - BRASIL
ENUNCIADA !
Postada em 12/01/2006 16:07 hs            
Sub Form_Click()
    Dim CX, CY, Radius, Limit, Asp
   
    Asp = 0.8
    ScaleMode = 3   ' pixels.
    CX = ScaleWidth / 2   ' X
    CY = ScaleHeight / 2   ' Y
   
    If CX > CY Then Limit = CY Else Limit = CX
   
    For Radius = 0 To Limit
        Circle (CX, CY), Radius, RGB(Rnd * 255, Rnd * 255, Rnd * 255), , , Asp
    Next Radius
   
End Sub


Se voce mudar o valor da variável Asp para mais a elipse 
tende a ser mais alta do que larga e para menos o contrário. 
Asp = 1 faz um círculo perfeito.

Para desenhar linhas use:

Me.Line(0,0)-(1000,1000), vbRed

Depois da Cor voce ainda pode tacar outra vírgula e mandar 
B para a linha se transformar num retangulo (as coordenadas 
são a diagonal do retângulo) ou BF para fazer o mesmo só que 
o retângulo sairá preenchido.
 
Espero que possa ajudar .......


"O pior inimigo que você poderá encontrar será sempre você mesmo."
   
2bad
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 13/01/2006 18:14 hs         
Criem 1 Slider, que pode ser encontrado na barra vb components 6.0 num form qualquer. daí:
 
Option Explicit
'variáveis necessárias
Const Pi = 3.14159265358979
Const Deg2Rad = Pi / 180
Dim CenterX As Single
Dim CenterY As Single
Dim Radius As Single
Dim Radian As Double
Dim Degree As Double
'fim
 
'precisa setar o meio, o raio, e o degrau em que começar, eu seto no slider o default, e deixo que ele pegue.
Private Sub Form_Load()
    CenterX = 150
    CenterY = 150
    Radius = 100
    Degree = Slider1.Value
    BuildCircle ' veja mais abaixo
End Sub
'end
 
'aqui o slider
Private Sub Slider1_Scroll()
    Degree = Slider1.Value
    BuildCircle 'veja mais abaixo
End Sub
'end
 
'aqui a rotina que constrói
Private Sub BuildCircle()
    Dim Sine As Double
    Dim Cosine As Double
    Radian = Degree * Deg2Rad
    Sine = Sin(Radian)
    Sine = -Sine 'não sei porque, esse valor vem invertido, se tu faz sem inverter ele fica ao contrário.
    Cosine = Cos(Radian)
    Form1.Cls
    'set draw width to 1 to draw the lines and circle
    Me.DrawWidth = 1
    'circle
    Me.Circle (CenterX, CenterY), Radius, vbBlack
    'circle grid
    Me.Line (CenterX - Radius, CenterY)-(CenterX + Radius, CenterY), vbBlack
    Me.Line (CenterX, CenterY - Radius)-(CenterX, CenterY + Radius), vbBlack
    'inner green and red line
    Me.Line (CenterX, Radius * Sine + CenterY)-(Radius * Cosine + CenterX, Radius * Sine + CenterY), vbGreen
    Me.Line (Radius * Cosine + CenterX, CenterY)-(Radius * Cosine + CenterX, Radius * Sine + CenterY), vbRed
    'another set, just design, u choose
    Me.DrawWidth = 2
    'inner black line
    Me.Line (CenterX, CenterY)-(Radius * Cosine + CenterX, Radius * Sine + CenterY), vbBlack
    'set draw width to 5 for drawing a big point
    Me.DrawWidth = 5
    'blue dot
    Me.PSet (Radius * Cosine + CenterX, Radius * Sine + CenterY), vbBlue
End Sub
 
É isso, thx ae pela ajuda, o código pronto ficou bacana, se alguém tiver idéia melhor, por favor, diga ;p
   
2bad
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 13/01/2006 18:18 hs         
aliás, tirei o
 
Degree = Slider1.Value
 
e coloquei dentro da rotina. é que eu ia inserir uma caixa de texto para setar manual também, mas acho que nem vou fazer isso. ;p
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página