Changeset 8341:8a0fc164b870 in orange


Ignore:
Timestamp:
06/29/11 18:33:48 (3 years ago)
Author:
Noughmad <Noughmad@…>
Branch:
default
Convert:
db3588f5ad1f97370b9314eb9ba7e618d73e9027
Message:

Support all the point shapes defined is QwtPlotSymbol

Location:
source/orangegraph
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • source/orangegraph/curve.cpp

    r8340 r8341  
    181181      break; 
    182182       
     183    case LTriangle: 
     184      path = trianglePath(d, -90); 
     185      break; 
     186     
    183187    case RTriangle: 
    184       path = trianglePath(d, -90); 
    185       break; 
    186        
    187     case LTriangle: 
    188188      path = trianglePath(d, 90); 
    189189      break; 
    190        
     190 
    191191    case Cross: 
     192      path = crossPath(d, 0); 
     193      break; 
     194     
    192195    case XCross: 
     196      path = crossPath(d, 45); 
     197      break; 
     198       
     199    case HLine: 
     200      path.moveTo(-d,0); 
     201      path.lineTo(d,0); 
     202      break; 
     203       
     204    case VLine: 
     205      path.moveTo(0,-d); 
    193206      path.lineTo(0,d); 
    194       path.moveTo(0,0); 
    195       path.lineTo(0,-d); 
    196       path.moveTo(0,0);  
    197       path.lineTo(d,0); 
    198       path.moveTo(0,0); 
    199       path.lineTo(-d,0); 
    200       if (symbol == XCross) 
    201       { 
    202           path = QTransform().rotate(45).map(path); 
    203       } 
     207      break; 
     208       
     209    case Star1: 
     210      path.addPath(crossPath(d,0)); 
     211      path.addPath(crossPath(d,45)); 
     212      break; 
     213       
     214    case Star2: 
     215      path = hexPath(d, true); 
     216      break; 
     217       
     218    case Hexagon: 
     219      path = hexPath(d, false); 
    204220      break; 
    205221       
     
    409425    return m_yBounds.min; 
    410426} 
     427 
    411428QPainterPath Curve::trianglePath(double d, double rot) { 
    412429    QPainterPath path; 
    413     path.moveTo(-d, -d*sqrt(3)/3); 
    414     path.lineTo(d, -d*sqrt(3)/3); 
    415     path.lineTo(0, 2*d*sqrt(3)/3); 
     430    path.moveTo(-d, d*sqrt(3)/3); 
     431    path.lineTo(d, d*sqrt(3)/3); 
     432    path.lineTo(0, -2*d*sqrt(3)/3); 
    416433    path.closeSubpath(); 
    417434    return QTransform().rotate(rot).map(path); 
    418435} 
     436 
     437QPainterPath Curve::crossPath(double d, double rot) 
     438{ 
     439    QPainterPath path; 
     440    path.lineTo(0,d); 
     441    path.moveTo(0,0); 
     442    path.lineTo(0,-d); 
     443    path.moveTo(0,0);  
     444    path.lineTo(d,0); 
     445    path.moveTo(0,0); 
     446    path.lineTo(-d,0); 
     447    return QTransform().rotate(rot).map(path); 
     448} 
     449QPainterPath Curve::hexPath(double d, bool star) { 
     450    QPainterPath path; 
     451    if (!star) 
     452    { 
     453        path.moveTo(d,0); 
     454    } 
     455    for (int i = 0; i < 6; ++i) 
     456    { 
     457        path.lineTo( d * cos(M_PI/3*i), d*sin(M_PI/3*i) ); 
     458        if (star) 
     459        { 
     460            path.lineTo(0,0); 
     461        } 
     462    } 
     463    path.closeSubpath(); 
     464    return path; 
     465} 
     466 
     467 
     468 
  • source/orangegraph/curve.h

    r8340 r8341  
    157157   
    158158  static QPainterPath trianglePath(double d, double rot); 
     159  static QPainterPath crossPath(double d, double rot); 
     160  static QPainterPath hexPath(double d, bool star); 
    159161   
    160162  QColor m_color; 
Note: See TracChangeset for help on using the changeset viewer.