Давайте по порядку. Однокоренные слова - это те слова, у которых общий корень. В вашем примере этот корень "крас". Но слова "красный", "прекрасный" и "красить" не связаны общим смыслом, т.к. первое слово означает конкретный цвет, второе - эстетическую оценку, третье - действие по нанесению защитного покрытия безотносительно к его цвету. Поэтому они не родственные.
А вот слова "белый" и "белить", "черный" и "чернить" не только однокоренные, но и родственные, т.к. в слово "белить" указывает именно на действие, связанное с белым цветом, а "чернить", соответственно, с черным. И даже "очернять" в данном случае родственное слово, хотя его значение утратило физический смысл, оставив лишь переносный, но оно связано с черным цветом!
Выходит, что родственность слов обеспечивается:
1) общим корнем (необходимое условие);
2) фактом производности одного слова от другого (достаточное условие).
В парах белый-белить, черный-чернить глагол является производным от прилагательного, а в паре красный-красить - нет.