|
Создание базы данных |
644 Chart. Line (x0, y0) - (x0, y0 + d3D_ * Screen. TwipsPerPixelY), LineColor1645 End If1646 End If16471648 ' конечный угол1649 If Not ((EnAn > 0) And (EnAn < 90)) Then1650 x0 = x + Radius * Cos(EnAn * Pi_180) 1651 y0 = y - Radius * Ellipce * Sin(EnAn * Pi_180) 16521653 Chart. Line (x0, y0) - (x0, y0 + d3D_ * Screen. TwipsPerPixelY), LineColor1654 End If1655 1656 ' центр1657 If Not ((EnAn >= 270) And (StAn <= 270)) Then1658 Chart. Line (x, y) - (x, y + d3D_ * Screen. TwipsPerPixelY), LineColor1659 End If1660 1661 ' левый край1662 If ((StAn <= 180) And (EnAn >= 180)) Then1663 Chart. Line (x - Radius, y) - (x - Radius, y + d3D_ * Screen. TwipsPerPixelY), LineColor1664 End If1665 1666 End If1667 1668 OldGrad = Grad1669End Sub167016711672' рисование круговой диаграммы1673Sub DrawCircle() 1674 Dim Mode270 As Boolean1675 Dim Item270%16761677 ItemCount = UBound(DiagData) + 11678 1679 With Chart1680 Max = - 11681 Sum = 01682 For i% = 1 To ItemCount1683 If (DiagData(i - 1). Val > Max) Then Max = DiagData(i - 1). Val1684 Sum = Sum + DiagData(i - 1). Val1685 Next i1686 1687 Mode270 = (Max > 3 / 4 * Sum) 1688 1689 OneGradus = 360 / Sum1690 OldGrad = 0.000011691 1692 Xc = Chart. Width \ 21693 Yc = Chart. Height \ 21694 1695 Dim pos90%, pos270% ' индексы ключевых элементов1696 pos90 = - 11697 pos270 = - 11698 OldGrad = 01699 1700 Dim Angles() As Double1701 ReDim Angles(ItemCount - 1, 1) 1702 1703 For i% = 1 To ItemCount1704 If Mode270 Then If (DiagData(i - 1). Val = Max) Then Item270 = i - 11705 Grad# = DiagData(i - 1). Val * OneGradus + OldGrad1706 If (OldGrad <= 90) And (Grad >= 90) Then pos90 = i - 11707 If (OldGrad <= 270) And (Grad >= 270) Then pos270 = i - 11708 Angles(i - 1, 0) = OldGrad1709 Angles(i - 1, 1) = Grad1710 OldGrad = Grad1711 Next i1712 1713 Chart. DrawStyle = 01714 1715 If Not Mode270 Then1716 1717 For i% = pos90 To 0 Step - 11718 Call OutOneElem(i, Angles(i, 0), Angles(i, 1)) 1719 Next i1720 1721 For i% = pos90 + 1 To pos270 - 11722 Call OutOneElem(i, Angles(i, 0), Angles(i, 1)) 1723 Next i1724 1725 For i% = ItemCount - 1 To pos270 Step - 11726 Call OutOneElem(i, Angles(i, 0), Angles(i, 1)) 1727 Next i1728 Else1729 1730 i% = pos90 - 11731 If (i < 0) Then i = ItemCount - 11732 1733 Call OutOneElem(Item270, Angles(Item270, 0), Angles(Item270, 1), mode270begin) 1734 1735 Do While (i <> Item270) 1736 Call OutOneElem(i, Angles(i, 0), Angles(i, 1)) 1737 1738 i = i - 11739 If (i < 0) Then i = ItemCount - 11740 Loop1741 1742 Call OutOneElem(Item270, Angles(Item270, 0), Angles(Item270, 1), mode270end) 1743 1744 End If1745 End With1746End Sub17471748' рисование линейной, точечной и столбчатой диаграмм1749Sub DrawPoint() 1750 Dim d3DX%1751 Dim d3DY%1752 Dim OldX%, OldY% ' координаты предыдущей точки1753 1754 ItemCount = UBound(DiagData) + 11755 ChartHeight = Chart. Height * 0.81756 ChartTop = Chart. Height * 0.11757 ChartDown = Chart. Height * 0.91758 1759 With Chart1760 dWidth = Chart. Width / (2 * ItemCount + 1) 1761 1762 Max = - 11763 Sum = 01764 For i% = 1 To ItemCount1765 If (DiagData(i - 1). Val > Max) Then Max = DiagData(i - 1). Val1766 Sum = Sum + DiagData(i - 1). Val1767 Next i1768 1769 dHeight = ChartHeight / Max1770 1771 d3DX = Screen. TwipsPerPixelX1772 d3DY = Screen. TwipsPerPixelY1773 1774 With Chart1775. DrawWidth = 11776. DrawStyle = 31777 Chart. Line (dWidth * 0.9, ChartTop \ 2) - (dWidth * 0.9, ChartDown), LineColor1778 Chart. Line (dWidth * 0.9, ChartDown) - ((2 * ItemCount + 0.5) * dWidth, ChartDown), LineColor1779. DrawStyle = 017801781. FontSize =. FontSize + 31782. FontUnderline = True17831784. CurrentX = 2 * d3DX1785. CurrentY = 2 * d3DY1786 Chart. Print "Значения"1787 1788 str_$ = "Подписи"1789. CurrentX =. Width - . TextWidth(str_) - 10 * d3DX1790. CurrentY = ChartDown +. TextHeight(str_) 1791 Chart. Print str_17921793. FontSize =. FontSize - 31794. FontUnderline = False1795 End With179617971798 For i% = 1 To ItemCount1799 j% = 2 * i - 11800 Dim y#, x#1801 y = ChartTop + dHeight * (Max - DiagData(i - 1). Val) 1802 1803 Select Case DrawingMode1804 Case 0 ' // // // // // // // // // // // // // // // // / ЛИНИИ // // // // // // // // // // // // // // // // // // // // /1805 x# = (j + 0.5) * dWidth1806 1807 If (i > 1) Then1808 Chart. DrawWidth = LineWidth1809 Chart. Line (OldX, OldY) - (x, y), DiagData(i - 1). Color1810 Chart. DrawWidth = 11811 End If1812 Chart. DrawStyle = 11813 Chart. Line (x, y) - (x, ChartDown), DiagData(i - 1). Color1814 Chart. DrawStyle = 01815 OldX = x1816 OldY = y1817 1818 str_$ = CStr(DiagData(i - 1). Text) 1819 Chart. CurrentX = j * dWidth + (dWidth - Chart. TextWidth(str_)) \ 21820 Chart. CurrentY = ChartDown + Chart. TextHeight(str_) \ 101821 Chart. Print str_1822 1823 str_ = CStr(Round(DiagData(i - 1). Val / Sum * 100)) + "%"1824 Chart. CurrentX = j * dWidth + (dWidth - Chart. TextWidth(str_)) \ 21825 Chart. CurrentY = y - Chart. TextHeight(str_) * 1.21826 Chart. Print str_1827 1828 ' значение слева с засечкой и линией1829 str_ = CStr(DiagData(i - 1). Val) 1830 If UseLineLeftValues Then1831 Chart. CurrentX = dWidth * 0.8 - Chart. TextWidth(str_) 1832 Chart. DrawStyle = 21833 Chart. Line (dWidth * 0.9, y) - (x, y), LineColor1834 Chart. DrawStyle = 01835 End If18361837 Chart. DrawWidth = 21838 Chart. Line (dWidth * 0.85, y) - (dWidth * 0.95, y), LineColor1839 Chart. DrawWidth = 11840 x# = dWidth * 0.8 - Chart. TextWidth(str_) 1841 Chart. CurrentX = x1842 Chart. CurrentY = y - Chart. TextHeight(str_) \ 21843 Chart. Print str_1844 1845 Case 1 ' // // // // // // // // // // // // // // // // / КОЛОНКИ // // // // // // // // // // // // // // // // // // // /1846 If (Not Use3D) Then1847 Chart. Line (j * dWidth, y) - ((j + 1) * dWidth, ChartDown), DiagData(i - 1). Color, BF1848 Chart. Line (j * dWidth, y) - ((j + 1) * dWidth, ChartDown), LineColor, B1849 1850 str_ = CStr(DiagData(i - 1). Text) 1851 Chart. CurrentX = j * dWidth + (dWidth - Chart. TextWidth(str_)) \ 21852 Chart. CurrentY = ChartDown + Chart. TextHeight(str_) \ 101853 Chart. Print str_1854 1855 str_ = CStr(Round(DiagData(i - 1). Val / Sum * 100)) + "%"1856 Chart. CurrentX = j * dWidth + (dWidth - Chart. TextWidth(str_)) \ 21857 Chart. CurrentY = y - Chart. TextHeight(str_) * 1.21858 Chart. Print str_1859 1860 ' значение слева с засечкой и линией1861 str_ = CStr(DiagData(i - 1). Val) 1862 If UseLineLeftValues Then1863 Chart. CurrentX = dWidth * 0.8 - Chart. TextWidth(str_) 1864 Chart. DrawStyle = 21865 Chart. Line (dWidth * 0.9, y) - (j * dWidth, y), LineColor1866 Chart. DrawStyle = 01867 End If1868 1869 x# = dWidth * 0.8 - Chart. TextWidth(str_) 1870 Chart. CurrentX = x1871 Chart. CurrentY = y - Chart. TextHeight(str_) \ 21872 Chart. Print str_1873 Chart. CurrentX = x1874 Chart. CurrentY = y1875 Chart. DrawWidth = 21876 Chart. Line (dWidth * 0.85, y) - (dWidth * 0.95, y), LineColor1877 Chart. DrawWidth = 11878 Else1879 For k% = 0 To d3D - 11880 Chart. Line (j * dWidth + k * d3DX, y - k * d3DY) - ((j + 1) * dWidth + k * d3DX, ChartDown - k * d3DY), DiagData(i - 1). Color, B1881 Next k1882 Chart. Line (j * dWidth, y) - ((j + 1) * dWidth, ChartDown), DiagData(i - 1). Color, BF1883 ' верхняя левая в глубине1884 ltdx% = j * dWidth + (d3D - 1) * d3DX1885 ltdy% = y - (d3D - 1) * d3DY1886 ' верхняя правая в глубине1887 rtdx% = (j + 1) * dWidth + (d3D - 1) * d3DX1888 rtdy% = y - (d3D - 1) * d3DY1889 ' нижняя правая в глубине1890 rddx% = (j + 1) * dWidth + (d3D - 1) * d3DX1891 rddy% = ChartDown - (d3D - 1) * d3DY1892 ' верхняя в глубине1893 Chart. Line (rtdx, rtdy) - (rddx, rddy), LineColor1894 ' правая в глубине1895 Chart. Line (ltdx, ltdy) - (rtdx, rtdy), LineColor1896 1897 ' левая переходная1898 Chart. Line (ltdx, ltdy) - (ltdx - d3D * d3DX, ltdy + d3D * d3DY), LineColor1899 ' правая верхняя переходная1900 Chart. Line (rtdx, rtdy) - (rtdx - d3D * d3DX, rtdy + d3D * d3DY), LineColor1901 ' правая нижняя переходная1902 Chart. Line (rddx, rddy) - (rddx - d3D * d3DX, rddy + d3D * d3DY), LineColor1903 Chart. Line (j * dWidth, y) - ((j + 1) * dWidth, ChartDown), LineColor, B1904 1905 ' надпись внизу1906 str_ = CStr(DiagData(i - 1). Text) 1907 Chart. CurrentX = j * dWidth + (dWidth - Chart. TextWidth(str_)) \ 21908 Chart. CurrentY = ChartDown + Chart. TextHeight(str_) \ 101909 Chart. Print str_1910 ' процент вверху1911 str_ = CStr(Round(DiagData(i - 1). Val / Sum * 100)) + "%"1912 Chart. CurrentX = d3D * d3DX + j * dWidth + (dWidth - Chart. TextWidth(str_)) \ 21913 Chart. CurrentY = y - d3D * d3DY - Chart. TextHeight(str_) * 1.21914 Chart. Print str_1915 ' значение слева с засечкой и линией1916 str_ = CStr(DiagData(i - 1). Val) 1917 If UseLineLeftValues Then1918 Chart. CurrentX = dWidth * 0.8 - Chart. TextWidth(str_) 1919 Chart. DrawStyle = 21920 Chart. Line (dWidth * 0.9, y) - (j * dWidth, y), LineColor1921 Chart. DrawStyle = 01922 End If1923 1924 x# = dWidth * 0.8 - Chart. TextWidth(str_) 1925 Chart. CurrentX = x1926 Chart. CurrentY = y - Chart. TextHeight(str_) \ 21927 Chart. Print str_1928 Chart. CurrentX = x1929 Chart. CurrentY = y1930 Chart. DrawWidth = 21931 Chart. Line (dWidth * 0.85, y) - (dWidth * 0.95, y), LineColor1932 Chart. DrawWidth = 11933 End If1934 1935 Case 2 ' // // // // // // // // // // // // // // // // / ТОЧКИ // // // // // // // // // // // // // // // // // // // // /1936 Chart. FillStyle = 01937 Chart. FillColor = DiagData(i - 1). Color1938 x# = (j + 0.5) * dWidth1939 Chart. Circle (x, y), PointRadius * d3DX, LineColor1940 Chart. FillStyle = 11941 Chart. DrawStyle = 11942 Chart. Line (x, y) - (x, ChartDown), DiagData(i - 1). Color1943 Chart. DrawStyle = 01944 1945 str_ = CStr(DiagData(i - 1). Text) 1946 Chart. CurrentX = j * dWidth + (dWidth - Chart. TextWidth(str_)) \ 21947 Chart. CurrentY = ChartDown + Chart. TextHeight(str_) \ 101948 Chart. Print str_1949 1950 str_ = CStr(Round(DiagData(i - 1). Val / Sum * 100)) + "%"1951 Chart. CurrentX = j * dWidth + (dWidth - Chart. TextWidth(str_)) \ 21952 Chart. CurrentY = y - PointRadius * d3D - Chart. TextHeight(str_) * 1.21953 Chart. Print str_1954 1955 ' значение слева с засечкой и линией1956 str_ = CStr(DiagData(i - 1). Val) 1957 Chart. CurrentX = dWidth * 0.8 - Chart. TextWidth(str_) 1958 Chart. DrawStyle = 21959 Chart. Line (dWidth * 0.9, y) - (x, y), LineColor1960 Chart. DrawStyle = 01961 1962 Chart. DrawWidth = 21963 Chart. Line (dWidth * 0.85, y) - (dWidth * 0.95, y), LineColor1964 Chart. DrawWidth = 11965 x# = dWidth * 0.8 - Chart. TextWidth(str_) 1966 Chart. CurrentX = x1967 Chart. CurrentY = y - Chart. TextHeight(str_) \ 21968 Chart. Print str_1969 End Select1970 Next i1971 1972 End With1973End Sub19741975Sub DrawDiagram() 1976 If (Chart. Height > Screen. TwipsPerPixelX * 5) And (UseColorFill) Then1977 Call ColorFill(Chart, StartFillColor, EndFillColor) 1978 Else1979 Chart. Line (0, 0) - (Chart. Width, Chart. Height), StartFillColor, BF1980 End If19811982 Select Case DrawingMode1983 Case 3: Call DrawCircle1984 Case Else: Call DrawPoint1985 End Select1986End Sub19871988Private Sub Chart_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) 1989 If (DrawingMode <> 3) Then1990 y = Round((ChartDown - y) * Max / (ChartDown - ChartTop)) 1991 Label3. Caption = CStr(y) 1992 End If1993End Sub19941995Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) 1996 If (KeyCode = vbKeyF5) Then Call DrawDiagram1997End Sub19981999Private Sub Form_Load() 2000 dW = Width - Chart. Width2001 dH = Height - Chart. Height2002 dX = Width - VScroll. Left2003 dH2 = Height - VScroll. Height2004 DrawingMode = 02005 Use3D = False2006 LineCount = 1002007 d3D = 152008 StartFillColor = RGB(255, 255, 128) 2009 EndFillColor = RGB(0, 128, 255) 2010 LineColor = 02011 LineWidth = 12012 Ellipce = 2 / 52013 PointRadius = 152014 2015 UseColorFill = True2016 UseCircleLegend = True2017 UseLineLeftValues = True2018 2019 ChartHeight = Chart. Height * 0.852020 ChartWidth = Chart. Width * 0.852021 ChartTop = Chart. Height * 0.0752022 ChartDown = Chart. Height * 0.9252023 If (ChartWidth < ChartHeight) Then Radius = ChartWidth Else Radius = ChartHeight2024 Radius = Radius * 0.52025 InRad = 0.1 * Radius2026End Sub20272028Private Sub Form_Resize() 2029 Min% = Width - dW + 5 * Screen. TwipsPerPixelX2030 If (Min < 0) Then Min = 02031 Chart. Width = Min2032 2033 Min% = Height - dH + Screen. TwipsPerPixelY2034 If (Min < 0) Then Min = 02035 Chart. Height = Min2036 2037 VScroll. Left = Width - dX
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
|
|
|
© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент. |
|
|