In this paper, we introduce a new algorithm for corner detection. Instead of calculating the gradients along x and y-axes, which is the common step of many existed algorithms, we use the sum of differences to observe the variations along the adaptive vertical and tangent axes. We classify the variations into 36 types and use the `case table' to determine whether a pixel is a corner. We do some experiments and show that our algorithm can detect almost all the corners of a complicated natural image (such as Lena image and Fruit image) successfully. In addition to corner detection, it is also possible to use our algorithm to detect the edges, ridges, valleys, isolated dots, saddles, and plain regions of a natural image.