IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Calcul du degré d'une courbe


Sujet :

C#

  1. #1
    Membre confirmé
    Avatar de diden138
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    714
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 714
    Points : 589
    Points
    589
    Par défaut Calcul du degré d'une courbe
    Bonsoir,
    Je bosse actuellement sur un projet de détection de mamelon et j'aurai quelques questions d'ordre techniques,
    voila
    j'ai joins à mon message un exemple de ce que je veux faire :
    1- d'abord je voudrais cliquer sur l'image et créer plusieurs points (comme le point X sur l'image) qui se reliront (tous les points comme X) automatiquement avec des lignes droites.
    2- ensuite je voudrais pouvoir calculer l'angle au niveau de chaque point (dans l'image par exemple l'angle au niveau du point X en d'autre mot l'angle entre les deux lignes jaunes )

    quelqu’un aurait une idée pour faire ça, un morceau de code idéalement

    Cordiales Salutations,
    Images attachées Images attachées  
    et vint le 20siècle et l'homme se mit à réflechir comme la machine auteur: diden138
    Langage: Pascal,OCaml,Delphi,c/c++.
    Langages web:Xhtml,Css,Php/Mysql,Javascript,Actionscript 2.0
    Plate forme:Windows XP Pro SP2./Red Hat 9.0/SUSE 10.2
    Config :Intel P4 3.2GHZ,2MO cach,512 RAM.
    Outils:Tp7,objective caml,Delphi 6 perso, C++builder 6,Visual C++ Express edition sous win,code-block sous linux(Ubuntu) .

  2. #2
    Membre confirmé Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Points : 513
    Points
    513
    Par défaut
    Salut,

    c'est avec quelle techno ? WPF, Forms..?
    Tu galères plus pour le côté algo, ou le côté réalisation ? Qu'est-ce qui est déjà codé éventuellement ?

  3. #3
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  4. #4
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut angle entre 2 lignes
    bonjour
    effectivement metalgeek a raison de demander algo ou realisation.
    A/si tu cherche un logiciel tout pret tu as autocad ,le plus efficace et le plus precis que je connaisse.
    1/ Inserer une image raster
    2/unites (ce sont les unites choisi qu'on peut choisir dans menu units)
    3/quand on ne connait l'echelle de l'image au moment du scan ou production(image de synthese ) on met 1.
    4/les mesures de longueur seront corrigees en fonction de width et height image.
    5/l'angle est mesuree directement.
    on trace simplement les polylines sur l'image avec une couleur approprie.

    B/Reinveter la roue (reinvent the wheel)
    dessiner des polylines sur un controle n'est pas difficile ,mais le challenge c'est de referencer WindowsBase et d'acceder à la classe Vector qui donne toutes les operations (anglebetween,add,multiply par scalaire,par matrice,produit scalaire (determinant en english),produit vectoriel(crossproduct) et j'en passe :

    voici un bout de code pour vb.net ou c# qui dessine un polyline et donne l'angle entre les 2 premiers segments (rad et degres):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     
    'Forme1 pour le dessin
    'projet  niveau .net framework 3.5
    '-reference WindowsBase.dll
    Imports System
    Imports System.Windows
    'ici l'imports qui donne acces aux vecteurs 
    Imports System.Windows.Forms
    Imports System.Drawing.Drawing2D
    Public Class Form1
        Dim v As Vector
        Dim v1 As Vector
        Dim v2 As Vector
        Dim b As Bitmap
        Dim g As Graphics
        Dim courantPoint As PointF
        Dim dernierPoint As PointF
        Dim Dessine As Boolean = False
        Dim listeVecteur As List(Of Vector) = New List(Of Vector)
        Public Sub New()
     
            ' Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
            Me.DoubleBuffered = True
            Me.ResizeRedraw = True
        End Sub
        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
            CreeObjetBitmap()
        End Sub
        Private Sub CreeObjetBitmap()
            b = New Bitmap(Me.Width, Me.Height)
            Me.BackgroundImage = b
            Me.BackgroundImageLayout = ImageLayout.Stretch
            g = Graphics.FromImage(Me.BackgroundImage)
            g.Clear(Color.White)
     
        End Sub
     
        Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
     
            Dim BoutonPresse As MouseButtons = e.Button
            If BoutonPresse = Windows.Forms.MouseButtons.Left Then
                Dessine = True
                courantPoint = e.Location
            ElseIf BoutonPresse = Windows.Forms.MouseButtons.Right Then
                Dessine = False
            End If
            'Bouton Gauche >Dessine 
            If Dessine Then
                ' verifie si premier click
                If dernierPoint.X <> 0 And dernierPoint.Y <> 0 Then
                    g.DrawLine(New Pen(Color.Black, 2.0), dernierPoint, courantPoint)
                    Me.Refresh()
                    'v.x =DX,v.y->DY
                    v.X = dernierPoint.X - courantPoint.X
                    v.Y = dernierPoint.Y - courantPoint.Y
                    listeVecteur.Add(v)
                    dernierPoint = courantPoint
                Else
                    dernierPoint = courantPoint
                End If
            Else   'Bouton droit ->Fin du dessin  
                dernierPoint = New PointF(0, 0)
                g.Clear(Color.White)
                Dessine = False
            End If
        End Sub
        Private Sub EffaceTout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EffaceTout.Click
            'efface tout et recommence
            g.Clear(Color.White)
            Me.Refresh()
        End Sub
     
        Private Sub AfficheAngle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AfficheAngle.Click
            Dim forme As frmAfficheAngle = New frmAfficheAngle
            'valeur positive (sens anti-horaire)
            Dim angle As Double = 0
            If listeVecteur.Count <> 0 Then
                v1 = listeVecteur(0)
                v2 = listeVecteur(1)
                angle = Vector.AngleBetween(v1, v2)
                forme.TextBox1.Text = "angle(v1,v2) rad :" & angle.ToString & vbCrLf _
                & "angle(v1,v2) deg :" & (angle / Math.PI).ToString
     
            End If
            forme.ShowDialog()
        End Sub
    End Class
    'forme avec un controle textbox utilise uniquement pour afficher l'angle entre 
    'le 1er vecteur et le 2eme vecteur
    '-ajouter un textbox
    Imports System.Windows.Forms
    Public Class frmAfficheAngle
     
    End Class
    Geometre à vos classes.....
    Bon code et un bone annee...

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/08/2009, 10h59
  2. Réponses: 4
    Dernier message: 02/03/2009, 17h18
  3. Calculer une "courbe de tendance"
    Par boullette38 dans le forum MATLAB
    Réponses: 2
    Dernier message: 20/07/2007, 14h43
  4. Calcul de l'aire sous une courbe
    Par ramrouma dans le forum MATLAB
    Réponses: 2
    Dernier message: 16/05/2007, 23h11
  5. calcul d'aire d'une courbe
    Par rabiahb dans le forum Delphi
    Réponses: 45
    Dernier message: 11/04/2007, 15h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo